Warning: Cannot use jsr199 Javac from jrt-fs.jar"
Jayaprakash Arthanareeswaran
jarthana at in.ibm.com
Fri Oct 9 04:26:35 UTC 2015
> The ability that you need, and which you're currently missing, is the
> ability to load code (modules) from an alternate JDK image.
This is what we (the eclipse team) is missing as well and I haven't
heard anything along these lines in this mail group. Or did I miss
something?
Regards,
Jay
"jigsaw-dev" <jigsaw-dev-bounces at openjdk.java.net> wrote on 10/08/2015
11:00:34 PM:
> From: Jonathan Gibbons <jonathan.gibbons at oracle.com>
> To: jigsaw-dev at openjdk.java.net
> Date: 10/08/2015 11:01 PM
> Subject: Re: Warning: Cannot use jsr199 Javac from jrt-fs.jar"
> Sent by: "jigsaw-dev" <jigsaw-dev-bounces at openjdk.java.net>
>
> Keimpe,
>
> While your use-case is about accessing alternate versions of javac, the
> underlying mechanism you are looking for is more general and not
> specific to javac.
>
> The ability that you need, and which you're currently missing, is the
> ability to load code (modules) from an alternate JDK image.
>
> If you could do that, you could load the module(s) you want into a new
> Layer, then from the Layer create a ServiceLoader, and from the
> ServiceLoader, iterate to find the desired impl of
> javax.tools.JavaCompiler, and thus avoid the need to use
> com.sun.tools.javac.api.JavacTool directly.
>
> -- Jon
>
>
> On 10/08/2015 09:47 AM, Keimpe Bronkhorst wrote:
> > Jon,
> >
> > Users of JDeveloper want to be able to compile and run their code with
> > any JDK on their filesystem, not just compile and run with the JDK
> > JDeveloper is running on.
> >
> > The compile I could make work in JDK8 and before by getting a
> > javax.tools.JavaCompiler from com.sun.tools.javac.api.JavacTool.create
()
> > all loaded through a classloader from tools.jar of the JDK the user
> > wanted to use.
> >
> > I remember you previously mentioned you were considering a way to
> > use JSR199 from any JDK other than the one of the current process.
> >
> > Keimpe Bronkhorst
> > JDeveloper
> >
> >
> > On 10/07/2015 06:01 PM, Keimpe Bronkhorst wrote:
> >> /The underlying exception I get is: />/"Class
> >> oracle.jdevimpl.javacompiler.JDevJavaCompiler can not access a
> >> />/member of class com.sun.tools.javac.api.JavacTool (module
> >> />/jdk.compiler) with modifiers "public static", module jdk.compiler
> >> does />/not export com.sun.tools.javac.api to <unnamed module
> >> @1cfeea20>" />//>/Will there be a "public API" way to run JSR199 of
> >> any JDK9 installation? />//>/Keimpe Bronkhorst />/JDeveloper />//>/On
> >> 10/7/2015 6:54 PM, Keimpe Bronkhorst wrote: />>/It is possible in
> >> JDK8 and before to run JSR199 compilations using a />>/class loader
> >> that loads from tools.jar. I can't do something similar />>/in JDK9
> >> using a new jigsaw build, trying to load from jrt-fs.jar. I />>/get
> >> this: Warning: Cannot use jsr199 Javac from jrt-fs.jar". />>//>>/Does
> >> this mean you can only use the JSR199 as provided by
> >> />>/ToolProvider.getSystemJavaCompiler() of the current process in
> >> JDK9? />>//>>/Keimpe Bronkhorst />>/JDeveloper />//
> > Keimpe,
> >
> > While we know that some "friends of javac" have been using its internal
> > API, it would be good to know what specific internal features you have
> > been using, so that we can see if there are alternatives on the public
> > API, and maybe provide additional public API where appropriate.
> >
> > You can run tools like jdeps to find what dependencies you have on any
> > internal API.
> >
> > -- Jon
> >
> >
>
More information about the jigsaw-dev
mailing list