Please review: VM side of Jigsaw classpath mode support

David Holmes david.holmes at oracle.com
Fri Aug 24 15:53:06 PDT 2012


On 24/08/2012 9:48 PM, Alan Bateman wrote:
> On 24/08/2012 12:29, David Holmes wrote:
>>
>> Not quite an internal detail. I can do:
>>
>> jmod create -L myjre
>> jmod -L myjre install jdk.base at 8-ea.jmod
>>
>> to get a JRE - albeit non-functional. If there is a required layout
>> then the tools need to enforce that.
>>
>> David
> The system module library is special and needs to be created in a way
> that takes account that it part of an image. For compatibility (and
> usability reasons) this means that the commands (javac, java, etc.) need
> to be in the image's bin directory rather than a module-private
> location. Native libraries are complicated by dependencies and also the
> need to have libjvm in a known location so that custom launchers can
> dlopen it. So yes, definitely not functional if you do the above. In any
> case, I think the VM has to special case the base module and has to have
> code to detect that it's running with module image.

But I think we have a disconnect on what you are permitted to do via 
jmod and what is required for a functional JRE. Using --natcmd and 
--natlib and "jmod create" you can end up with the JRE binaries & 
libraries in a completely different location to everything actually 
associated with the base module.

At a minimum this required layout must be documented. But preferably 
jmod would enforce it.

David

> -Alan.



More information about the jigsaw-dev mailing list