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:
yamcsduses$JAVA_HOME/bin/javawhenJAVA_HOMEis set, otherwisejavaon thePATH.- fpp's wrapper currently uses the
PATHonly (nasa/fpp#1107 requestsJAVA_HOMEbe 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)
| File | Reset | |||
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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