Java 9 backwards compatibility requires JDK version 1.6 or later

I received feedback from a user that they cannot use exificient because it is not compatible with Java 9, the new release.

Here is relevant information.

https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-77874D97-46F3-4DB5-85E4-2ACB5F8D760B
==============================================================
Java Platform, Standard Edition Oracle JDK 9 Migration Guide

Compile Your Application if Needed

Compiling your code with the JDK 9 compiler will ease migration to future releases since the code may depend on APIs and features which have been identified as problematic. However, it is not strictly necessary.
[...]

If you use the -source and -target options with javac, then check the values that you use. In JDK 9, javac uses a "one plus three back" policy of supporting -source and -target options.

The supported -source/-target values are 9 (the default), 8, 7, and 6 (6 is deprecated, and a warning is displayed when this value is used).

In JDK 8, -source and -target values of 1.5/5 and earlier were deprecated and caused a warning to be generated. In JDK 9, those values cause an error.

>javac -source 5 -target 5 Sample.java 
warning: [options] bootstrap class path not set in conjunction with -source 1.5
error: Source option 1.5 is no longer supported. Use 1.6 or later.
error: Target option 1.5 is no longer supported. Use 1.6 or later.
==============================================================

I've been able to get EXIficient building and part of an X3D project, X3DJSAIL.  OpenEXI to follow, work in progress.

 X3D Java Scene Access Interface Library (X3DJSAIL): EXI
 http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html#EXI

Daniel I was able to rebuild the gui version with dependencies successfully using -source 1.6, added "-source1.6" to jar manifest's version field, online at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/lib/exificient-gui-jar-with-dependencies.jar

For our X3D projects we have held back from Java 9 because Netbeans IDE is not yet compatible, they are moving it to Apache.  That is a big deal and may take some time but it will land eventually.  I can't do anything that won't work with Java 8 and Netbeans.

     Using Apache NetBeans (incubating) with JDK 9
     September 29, 2017 Geertjan Wielenga
     https://jaxenter.com/netbeans/using-apache-netbeans-incubating-jdk-9

Looks like we should go to source 1.6 as default in each Java library for broadest compatibility.  Meanwhile I won't dive into JDK 9 until Netbeans comes along.

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman

Received on Monday, 20 November 2017 17:01:36 UTC