BTrace is tested against a range of JDK versions and distributions to ensure compatibility across diverse runtime environments.
The CI pipeline runs integration tests against the following JDK versions on every pull request
and push to develop:
| JDK Version | SDKMan Identifier | Distribution | Status |
|---|---|---|---|
| 8 | 8.0.492-tem |
Eclipse Temurin | Supported (LTS) |
| 11 | 11.0.31-tem |
Eclipse Temurin | Supported (LTS) — minimum build JDK |
| 17 | 17.0.19-tem |
Eclipse Temurin | Supported (LTS) |
| 21 | 21.0.11-tem |
Eclipse Temurin | Supported (LTS) |
| 25 | 25.0.3-tem |
Eclipse Temurin | Supported (LTS) |
| 27 (EA) | 27.ea.25-open |
OpenJDK Early Access | Experimental — tracked for future readiness |
Version identifiers are checked every Monday via
.github/workflows/update-jdk-versions.yml
using the SDKMan API; a pull request is opened automatically when a newer version is available.
CI validates BTrace against Eclipse Temurin as the primary distribution. Other distributions (Amazon Corretto, Azul Zulu, GraalVM CE, Eclipse OpenJ9, Oracle JDK, etc.) are expected to work when they conform to the Java SE specification, but they are not formally tested in the CI pipeline.
If you discover a distribution-specific issue, please open a GitHub issue.
BTrace compiles with sourceCompatibility = 8 and targetCompatibility = 8, targeting the widest
possible deployment base. The build toolchain auto-provisions a JDK 11 compiler via Gradle
toolchains; the CI pipeline runs with JDK 24. A local build requires JDK 11 or later available
to Gradle (installed locally or auto-provisioned).
| Situation | Where to report |
|---|---|
| A specific JDK version or distribution breaks BTrace | Open a GitHub issue with the compatibility label |
| General question about JDK version support | GitHub Discussions |
| You have a fix | Open a pull request — see Contributing |
Please include:
- JDK version and distribution (e.g.,
GraalVM CE 21.0.3) - BTrace version
- Minimal reproduction: the BTrace script + target app + command used
- Full error output
Community members are welcome to validate BTrace against additional JDK distributions and versions not covered by the CI matrix. If you find an issue:
- Search existing issues before opening a new one.
- Open an issue with the
compatibilitylabel and the details listed above. - If you can provide a targeted fix, a pull request is strongly preferred over a long-running fork.
Long-lived compatibility forks are discouraged: they diverge from upstream quickly and often become impossible to reconcile. Instead, contribute focused patches upstream so all users benefit.