How does the removal of rt.jar affect "javac -source -target -bootclasspath"?

Volker Simonis volker.simonis at gmail.com
Tue Nov 4 19:48:34 UTC 2014


Thanks for the clarification Jonathan.

Regards,
Volker


On Tue, Nov 4, 2014 at 4:05 PM, Jonathan Gibbons
<jonathan.gibbons at oracle.com> wrote:
> On 11/04/2014 01:55 AM, Volker Simonis wrote:
>>
>> Hi,
>>
>> first of all I'm not Jigsaw expert in any way so if this question has
>> been discussed/answered before please be so kind to point me to the
>> right link.
>>
>> I've just skimmed JEP 220 and it is not clear to me how the removal of
>> rt.jar/tools.jar will affect the compilation with "-source -target
>> -bootclasspath". As far as I know one should always use a
>> corresponding "-bootclasspath" option if compiling with "-target".
>> This is for example done in the JDK build during boot-strapping.
>>
>> Until now, it was easy to set the bootclasspath for Oracle/OpenJDK
>> because all the relevant classes were contained in rt.jar. But this is
>> already quite complicated with other JDKs (i.e. IBM J9) which already
>> packed the standard java classes in various different jar files (see
>> for example "8026964: Building with an IBM J9 boot jdk requires
>> special settings for BOOT_RTJAR" -
>> https://bugs.openjdk.java.net/browse/JDK-8026964).
>>
>> For the current build system, I found that with the JDKs I use this
>> problem can be easily solved by using the "sun.boot.class.path"
>> system property which contains all the relevant jar files (see
>>
>> http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2013-November/thread.html#1222
>> and http://cr.openjdk.java.net/~simonis/webrevs/8026964.v2/).
>> Unfortunately, this change is still not committed:)
>> It is not clear to me from reading JEP 220 if "sun.boot.class.path"
>> will be removed or if it will only contain other content and how t hat
>> could be used in this context.
>>
>> So my questions are:
>> 1. How will it be possible to bootstrap JDK9 with JIGSAW if the JDK9
>> tools like javac won't support -bootclasspath with jar files (or will
>> they still support them)?
>> 2. How will it be possible with a JDK > 9 to produce JDK9 classes with
>> "-target 9" without a possibility to supply the corresponding rt.jar
>> as argument to "-bootclasspath"?
>> 3. Will JDK9 and above provide a standardized way to specify the
>> required classes which are needed in order to compile for a lower JDK
>> version (e.g with the help of "jrt:/$MODULE")? Will there be a
>> standardized set of modules which have to contain all the required
>> boot classes?
>>
>> Thank you and best regards,
>> Volker
>
>
> Volker,
>
> With respect to javac, we intend to continue to support -bootclasspath as
> now for supported values of -target earlier than JDK 9. And going forward,
> there will need to be a "modular equivalent" for -bootclasspath for values
> of -target for JDK 9 and later.
>
> -- Jon


More information about the jigsaw-dev mailing list