> On Dec 1, 2015, at 8:27 AM, alan.bate...@oracle.com wrote:
> 
> Changeset: ffe12af5613c
> Author:    mli
> Date:      2015-12-01 12:04 +0000
> URL:       http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/ffe12af5613c
> 
> Add tests for ClassLoader.getResourceXXX
> 

Curious,
I had code for checking to see where something was at…

        public static void main(String[] args) {
                try {
//                java.net.URL jrt = new java.net.URL("jrt:/java.base/");
                  ClassLoader cl = new java.net.URLClassLoader(modules);
                  System.out.println(cl.getResource(args[0]));
                }
                catch (Exception ex) { ex.printStackTrace(); }
        } 

This used to work with 
new java.net <http://java.net/>.URLClassLoader(new java.net 
<http://java.net/>.URL[0]);
Now with a jigsaw ea I get…
java -cp halfpipe.jar org.cmdline.cmds.Locator java/lang/String.class
null

To get it to work jigsaw for something in the base module I found it needed an 
actual URL like jrt above. It worked fine for class path outside the runtime. 
I then set up an url array with a separate jrt:/ url for each module - 
‘modules' in listing above, entire current list of modules omitted for brevity.
Then it works…
java -cp .:../../HalfPipe/halfpipe.jar  Locator java/lang/String.class
jrt:/java.base/java/lang/String.class

I also tried this as a ClassLoader subclass. The way I think I used to do this 
lookup. It didn’t seem to work for modular runtime classes either.

I haven’t done much else ClassLoader related with jigsaw yet, and hope to do 
less since I won’t need to try and load classes from tools.jar.  Are there 
other things expected to work a little differently?  Does loading work the same 
and just loadResource is different?

Michael Hall





Reply via email to