SCons / scons

SCons - a software construction tool
http://scons.org
MIT License
2.06k stars 314 forks source link

Java 11 support issues #3347

Open mwichmann opened 5 years ago

mwichmann commented 5 years ago

Some issues in SCons support of Java 11, which is the next long-term-support release after Java 8 (1.8). These actually apply to all versions since 10, so as of this writing 10, 11, 12.

See https://pairlist2.pair.net/pipermail/scons-dev/2019-April/004842.html

mwichmann commented 5 years ago

Log files: jdk11-depr.txt jdk11-wrong-javah.txt

mwichmann commented 5 years ago

Seems like not a lot of people worried about this problem!

Need to add one more thing: Oracle changed the licensing and it is now probable that openjdk will be more desirable even for Windows users (it is now considered the "reference" implementation, as opposed to being unofficial, while the Oracle jdk license is now more restricted than it used to be). The thing is, openjdk for Windows doesn't "install", it's a zipfile you unpack in place, and I don't think scons is going to find that. Untested on my part as I'm not a "Windows developer", but I expect we'll need to do some tweaking for that.

mwichmann commented 3 years ago

Update: the deprecation warning here:

MyID.java:7: warning: [removal] Long(long) in Long has been deprecated and marked for removal
        return new Long( current ).toString();
               ^
1 warning

obscures another warning, and that is that the entire Applet class is deprecated as of JDK 9. Search for the tag JDK-8184998 in the release notes here:

https://www.oracle.com/java/technologies/javase/9-deprecated-features.html

The testcase has an applet in it. Not sure where go with that.

mwichmann commented 2 years ago

The java situation has been partly tackled through PR #4049. It's certainly not enough to close this, or in fact to decisivley check off any of the boxes. The range of supported versions was expanded. Docs will now hint that JavaH is not useful for current JDKs - that's not a fix but at least cuts down the surprise factor. Docs note that you're expected to control desired Java version through alternatives system on Linux systems. We're aware that on some (Fedora) the presence of javah command is controlled that way, and on others (Ubuntu) it isn't, you can finc a 11.0 javac and there's still a 1.8 javah hanging around.