-The build is Gradle multi-module. **JDK 25+ is required to drive Gradle**: the `compileJava25Java` task (e.g. `prov/build.gradle`, `tls/build.gradle`) is unconditional and sets `options.release = 25`, so a Gradle daemon launched under JDK 21/17/etc. fails `:prov:compileJava25Java` with `error: release version 25 not supported`, and that failed compile can leave `core/build/classes/java/main` empty (cascading into confusing "package does not exist" errors on the next step). (Separately, JDK 21+ is the floor for the Error Prone compiler plugin, which is compiled for Java 21 / class file 65 — an older daemon fails `:core:compileJava` with `UnsupportedClassVersionError: …ErrorProneJavacPlugin … class file version 65.0 … up to <NN>.0`.) A JDK 25 is expected at `/opt/jdk-25`; drive Gradle with `JAVA_HOME=/opt/jdk-25 BC_JDK25=/opt/jdk-25 ./gradlew …`. Optional environment variables `BC_JDK8`, `BC_JDK11`, `BC_JDK17`, `BC_JDK21`, `BC_JDK25` opt in version-specific test tasks (compiled against MR-jar overlays). The default `:test` aggregates `:core:test :prov:test :prov:test11 :prov:test15 :prov:test17 :pkix:test :pg:test :tls:test :mls:test :mail:test :jmail:test`.
0 commit comments