> If you specify -XX:+IgnoreUnrecognizedVMOptions then JDK 8/older will ignore > the JDK 9 options that it doesn't recognize.
But this only applies to -XX options, doesn't it? I can't quite use the gnu-style options with the above because how would it know what is an option and what is part of command line arguments? > jdk1.9\bin\java --add-modules jdk.xml.bind,java.activation -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+129-jigsaw-nightly-h5343-20160802) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+129-jigsaw-nightly-h5343-20160802, mixed mode) > jdk1.8\bin\java -XX:+IgnoreUnrecognizedVMOptions --add-modules > jdk.xml.bind,java.activation -version Error: Could not find or load main class jdk.xml.bind,java.activation Also, we're can't really restrict our users to OpenJDK (or Oracle's distribution): > jdk1.8-ibm\bin\java -XX:+IgnoreUnrecognizedVMOptions --add-modules > jdk.xml.bind,java.activation -version JVMJ9VM007E Command-line option unrecognised: --add-modules Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. > In the main manifest of the main application JAR then you can put: > > Add-Exports-Private: java.base/java.lang Yup, that's more what I had in mind. Dawid