add jar to classpath at runtime but not able to access resource in
jar
Hi,
I have exteneded URLClassLoader to:
import java.net.URL;
import java.net.URLClassLoader;
/**
* The ExtenedClassLoader class.
*/
public class ExtendedClassLoader extends URLClassLoader {
/**
* @param urls, to carryforward the existing classpath.
*/
public ExtendedClassLoader(URL[] urls) {
super(urls);
}
@Override
/**
* add ckasspath to the loader.
*/
public void addURL(URL url) {
super.addURL(url);
}
}
Then to add my jar file to classpath at runtime I use the following
code ( see below).
private void addToClasspath(){
try
{
URL urls [] = {};
String path = "/home/xddmid/out/xml.jar";
String urlPath = "jar:file://" + path + "!/";
URL url = new URL (urlPath);
ExtendedClassLoader cl = new ExtendedClassLoader (urls);
cl.addURL(url);
String resource =
ClassLoader.getSystemClassLoader().getResource("test.xml").toExternalForm();
System.out.println ("Success! Resource "+resource + "
found!");
}
catch (Exception ex)
{
System.out.println ("Failed.");
ex.printStackTrace ();
}
I have verified that the jarfile exists and that it contains "test.xml
file" ( "jar tvf xml.jar).
The "test.xml" file is directly in root ( no package name).
I get a NullPointerException for this line:
String resource =
ClassLoader.getSystemClassLoader().getResource("test.xml").toExternalForm();
Any help or ideas are very much appreciated.
br,
//mike