Java8
Why Java 8 is not dead
- Because Java 9 breaks things
- Because Java 10 breaks more things
- Because Java 11 breaks even more things
- Because Java >=12 will surely break more of the stuff that has been working perfectly for years
And the cost/benefit relation of moving along Oracle's ideas seems not worthwile.
Examples
Mediawiki-Japi
Problem
Mediawiki-Japi/src/main/java/com/bitplan/mediawiki/japi/api/Page.java:[34,33] package javax.xml.bind.annotation does not exist
Diagnosis
Oracle decided to remove APIs
Solution
Do not use Oracle's incompatible Java versions - stay with Version 8
diff --git a/.travis.yml b/.travis.yml
# this is a java project using maven
language: java
+# make sure things keep working see http://wiki.bitplan.com/index.php/Java8
+jdk: openjdk8
Crashing Eclipse
Problem
Trying to start Eclipse oxygen leads to multiple ClassNotFoundExceptions
Diagnosis
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=533390
- https://stackoverflow.com/questions/48349760/how-do-i-change-my-eclipse-ides-launch-jvm
Therapy
Surprise - stay with Java 8 ... Search it:
/usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
and add it to your eclipse.ini (make sure using two lines as below ...
-vm /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/bin/java
Hazelcast not starting
Problem
java: WARNING: Hazelcast is starting in a Java modular environment (Java 9 and newer) but without proper access to required Java packages. Use additional Java arguments to provide Hazelcast access to Java internal API. The internal API access is used to get the best performance results. Arguments to be used: java: --add-modules java.se --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
Diagnosis
Code not working without changes
Therapy
Surprise - stay with Java 8 ...