i888 Use correct java compiler for JUnit tests #895
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of what the PR does
Since Eclipse 4.17 (2020-09), Java 11 (or newer) is the default JDK that ships with Eclipse. Previously, it was Java 8 (1.8). This PR attempts to track down the correct JDK to use for compiling the JUnit test programs. The JDK must match the currently running JVM in order to qualify. A search of the
JAVA_HOME/bin
and folders on thePATH
environment variable are checked for the presence of the corresponding JDK (javac[.exe]
). The code only checks for the presence of the Java version string in the folder name. It could be expanded to actually attempt to run "javac -version
" in each folder, but that shouldn't be necessary, and is highly inefficient.The reason for this PR is that the JUnits requiring compiles were using Eclipse's JDK (Version >11), but attempting to execute the produced class files using JRE 1.8. This lead to the errors described in #888.
Issue which the PR addresses
Fixed #888
Environment in which the PR was developed (OS,IDE, Java version, etc.)
Windows 11
Eclipse 2021-12, with JVM org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.1.v20211116-1657
JDK 1.8.0_351
Precise steps for testing the PR (i.e., how to demonstrate that it works correctly)
Run all JUnits. They should pass now. Previously, the ones in #888 (ExecuteTest, among others) did not pass.