mirror of https://github.com/sbt/sbt.git
**Problem** Running sbt 2.x with JDK 8 produces a confusing "server was not detected" error because the JDK version check only required JDK 8+ and only ran in the non-native-client path. **Solution** Move java_version detection before the native client decision and add checkJava17ForSbt2 that requires JDK 17+ when sbt major version >= 2. Fixes #8813 * [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbtw) Move JDK version check before native client decision in sbtw and require JDK 17+ when build.properties declares sbt 2.x. * [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbt.bat) Move checkjava before native client decision in sbt.bat and require JDK 17+ when build.properties declares sbt 2.x. * [2.x] test: Add minimumJdkVersion helper and unit tests for sbtw Extract JDK version check logic into Runner.minimumJdkVersion for testability. Add RunnerSpec with tests for sbt 1.x, 2.x, and 3.x version detection. * [2.x] test: Bump fake java to JDK 17 for integration tests The fake java script used by launcher integration tests reported JDK 8. Since sbt 2.x now requires JDK 17+, the citest2 (sbt 2.x) integration tests would fail with the new JDK version check. * Simulate JDK 9+ rt.jar handling in fake java script Instead of silently ignoring --rt-ext-dir (which causes sbt.bat to mkdir on an empty string), properly simulate JDK 9+ behavior by creating a temp directory with java9-rt-ext- prefix and a dummy rt.jar inside it. |
||
|---|---|---|
| .. | ||
| java | ||
| java.cmd | ||