On 26/07/2015 01:29, Michael Hall wrote:
On Jul 25, 2015, at 12:10 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
Just a heads-up that jdk9-b74 has a refresh of the jimage and jrt file system
implementation.
Have mostly just been following along on this a little with the early access
releases. I was a little curious on this though so I cloned and built current
jdk9.
I have a simple jrt filesystem lister that I tried running getting…
~/jdk9/build/macosx-x86_64-normal-server-release/jdk/bin/java -cp . JRTLister
java.nio.file.FileSystemNotFoundException:
/Users/mjh/jdk9/build/macosx-x86_64-normal-server-release/jdk/lib/modules/bootmodules.jimage
at jdk.internal.jrtfs.JrtFileSystem.checkExists(JrtFileSystem.java:87)
at jdk.internal.jrtfs.JrtFileSystem.<init>(JrtFileSystem.java:102)
at
jdk.internal.jrtfs.JrtFileSystemProvider$1.<init>(JrtFileSystemProvider.java:113)
at
jdk.internal.jrtfs.JrtFileSystemProvider.getTheFileSystem(JrtFileSystemProvider.java:113)
at
jdk.internal.jrtfs.JrtFileSystemProvider.getFileSystem(JrtFileSystemProvider.java:131)
at java.nio.file.FileSystems.getFileSystem(FileSystems.java:221)
at JRTLister.main(JRTLister.java:13)
Obviously finding JrtFileSystem but not modules/bootmodules.jimage?
Replace jdk/bin/java with images/jdk/bin/java in your path above and I
expect it should work.
The jdk directory in the build output is the "exploded build". It's an
intermediate step in the build before the JDK and JRE images are
created. Many people working on the JDK use the exploded builds for
quick edit-build-debug sessions and local testing but I don't think is
used much beyond that.
JDK-8066860 [1] is tracking an update to the jrt file system to support
exploded builds. Sundar has an initial patch but it's not in JDK 9 yet.
-Alan
[1] https://bugs.openjdk.java.net/browse/JDK-8066860