Skip to main content

fprime-jre

A Java runtime you can pip install. fprime-jre bundles a jlink-trimmed Eclipse Temurin Java 25 runtime and puts a java command in your Python environment, so F Prime tools that need Java — fpp and fprime-yamcs — run on machines with no Java installed, with no changes to those tools.

pip install fprime-jre
java -version
# openjdk version "25.0.4.1" 2026-08-18 LTS
# OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS)

This is a runtime only: it runs JARs. It does not include javac, jar, jshell, sbt, or anything else needed to build Java or Scala software.

How it works

The wheel installs a java console script next to pip and python in your environment's bin/ (Scripts\ on Windows). Inside a virtual environment that directory precedes the system PATH, so tools that look up java on the PATH — fpp-check and friends, yamcsd — find this one. The script execs the bundled runtime with your arguments, stdio, exit code and signals unchanged.

Java 25 is the version required by fpp's published JARs and supported by YAMCS.

Which Java wins?

java from fprime-jre is unconditional: if it is invoked, the bundled runtime runs. It never looks at JAVA_HOME. Choosing between a Java you already have and this one is the caller's job, in the conventional JAVA_HOME then PATH order:

  • yamcsd uses $JAVA_HOME/bin/java when JAVA_HOME is set, otherwise java on the PATH.
  • fpp's wrapper currently uses the PATH only (nasa/fpp#1107 requests JAVA_HOME be honoured first).

So: set JAVA_HOME and tools use your Java; leave it unset inside an environment with fprime-jre and they use this one. To point other tooling at the bundled runtime:

export JAVA_HOME="$(fprime-jre)"

From Python

import subprocess
from fprime_jre import JAVA, JAVA_HOME, JAVA_VERSION  # Path, Path, (25, 0, 4, 1)

subprocess.run([str(JAVA), "-jar", "tool.jar"])

Platforms

Wheels are published for Linux x86_64 and aarch64 (glibc 2.17+), macOS x86_64 and arm64 (11.0+), and Windows x64. Alpine/musl is not supported. Wheels are platform-specific but Python-version independent (py3-none-<platform>), for Python 3.8+.

Versioning

The package version is the Temurin JAVA_VERSION followed by a repackaging number: 25.0.4.1.0 bundles Temurin jdk-25.0.4.1+1. Consumers wanting Java 25 can depend on fprime-jre>=25,<26.

Building

Wheels are built by CI, one job per platform, since the runtime must be linked on its target OS. To build locally (Python 3.11+ for the build script):

python build_runtime.py               # downloads Temurin from Adoptium, verifies SHA-256, runs jlink
python -m build --wheel               # dist/fprime_jre-<version>-py3-none-<platform>.whl
pip install dist/*.whl pytest && pytest tests

FPRIME_JRE_PLATFORM_TAG overrides the wheel's platform tag (CI sets the manylinux/macosx tags). Optional integration tests run when FPRIME_JRE_TEST_FPP_JAR (path to an fpp.jar) or FPRIME_JRE_TEST_YAMCS_DIR (an unpacked YAMCS bundle) are set.

Updating Java: change TEMURIN_RELEASE in build_runtime.py and the version in pyproject.toml together; the build fails if they disagree. Publishing is by GitHub release through publish.yml using PyPI trusted publishing.

License

The Python code in this repository and the bundled OpenJDK runtime are distributed under the GNU General Public License, version 2, with the Classpath Exception (LICENSE, ASSEMBLY_EXCEPTION, ADDITIONAL_LICENSE_INFO). Per-module third-party notices ship inside the runtime under legal/; Temurin's notices are in NOTICE.

Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Eclipse Temurin is a trademark of the Eclipse Foundation.

Metadata

Release files for fprime-jre 25.0.4.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for fprime-jre 25.0.4.1.0
File
fprime_jre-25.0.4.1.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 208.0 MB

Release files / fprime_jre-25.0.4.1.0-py3-none-win_amd64.whl

Download URL fprime_jre-25.0.4.1.0-py3-none-win_amd64.whl
Size 39.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
c99ed295e218711849f74e56106cf05d2095fb7cb389218092dbecef30b076a6
BLAKE2b-256 checksum
How to use checksums
3a45eabe2823c0bc4c0e32082c0d32ee2a6c71b11565610abf1f9cd144cadfe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 44.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d05e337e407210726eea96a5e482c327700441f3fd2ef6243463fdc0cb44f05d
BLAKE2b-256 checksum
How to use checksums
1f580aef185c1e0390f18414018318d0361ad2568928fb2b77472fbf92c9ab75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fprime_jre-25.0.4.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 43.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
13316abd435c87c60a6697e63bfcf5fef31dc10af83a6481d43f18fb10e62bea
BLAKE2b-256 checksum
How to use checksums
369baa48a4bce084e28f8b712710269f51fb5f8a9bf541f10ba9c1d32e1c2354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_x86_64.whl

Download URL fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_x86_64.whl
Size 40.7 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
9e7d2c500cc281631ca6c24f180def0a92e40a2b36626edc86c11e243d54fc68
BLAKE2b-256 checksum
How to use checksums
5f5a838032bbfbd43a2992cc4e131fb4bead3c428c793fee2fdd72a65a821f3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_arm64.whl

Download URL fprime_jre-25.0.4.1.0-py3-none-macosx_11_0_arm64.whl
Size 39.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
73f4335f46443c0c87db10db6ad03d77a84bef0ae9f7753d990a62b6a5a4d158
BLAKE2b-256 checksum
How to use checksums
c22442c71880a8b2feb72b5319a8b2b8cf46cbdfebea60e579c35d7e645f2d44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

25.0.4.1.0 This release

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page