AW: Java 9 backwards compatibility requires JDK version 1.6 or later

Hi Don, all,



EXIficient works with Java 5, 6, 7, and 8.



EXIficient currently does not work with Java9 modules. An issue was created for this already (see [1]).

We plan to update the code so that it works. It is not an issue per se but Java9 requires dedicated package names for each project which is currently not the case.



Hope this helps,



-- Daniel



[1] https://github.com/EXIficient/exificient/issues/11




________________________________
Von: Don Brutzman [brutzman@nps.edu]
Gesendet: Montag, 20. November 2017 17:59
An: Takuki Kamiya; Peintner, Daniel (ext) (CT RDA NEC EMB-DE)
Cc: public-exi@w3.org
Betreff: 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 Tuesday, 21 November 2017 09:59:57 UTC