W3C home > Mailing lists > Public > public-exi@w3.org > November 2017

Java 9 backwards compatibility requires JDK version 1.6 or later

From: Don Brutzman <brutzman@nps.edu>
Date: Mon, 20 Nov 2017 08:59:41 -0800
To: Takuki Kamiya <tkamiya@us.fujitsu.com>, "Peintner, Daniel (ext)" <daniel.peintner.ext@siemens.com>
CC: "public-exi@w3.org" <public-exi@w3.org>
Message-ID: <e4fc804d-abda-eced-279a-26022272468f@nps.edu>
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

This archive was generated by hypermail 2.3.1 : Monday, 20 November 2017 17:01:38 UTC