On 02/07/2015 20:01, offbynull-jig...@offbynull.com wrote:
The JEP says that the module container format is
"implementation-specific" and "subject to change without notice". My
concern is that this is going to end up screwing over tool
maintainers, such as myself. I maintain an opensource tool that scans
through core Java classes for instrumentation purposes. It's supposed
to be able to target code written for Java 1.4 and above. I can force
my users to use Java9 to run the tool, which means that that the tool
will be able to read core Java9 classes via the jrt:/ URL solution.
But what happens when Java10 comes out? Will my users be able to scan
core classes in Java9 if the tool is running on Java10?
So far, it looks like nothing in the JEP covers this. As far as I can
tell, the jrt:/ URL solution only reads core classes/resources from
the version of Java that the tool is running on.
Search for "jrt-fs.jar" in the JEP. As things stand in JDK 9 then you
run the tool on JDK 8 to access the contents of a JDK 9 run-time image
or run the tool on JDK 9 to access itself.
We're not there yet but eventually it should be possible to run a tool
on JDK 9 to access another JDK 9 run-time image (maybe it has a
different set of modules) or run on JDK 9 to access a JDK 10 run-time image.
-Alan.