How does the removal of rt.jar affect "javac -source -target -bootclasspath"?
Jonathan Gibbons
jonathan.gibbons at oracle.com
Tue Nov 4 15:05:47 UTC 2014
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