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