|
|
|
|
|
Re: How do you load a JAR on your Plugin Classpath? (Snippet) [message #160405 is a reply to message #158480] |
Fri, 21 November 2003 19:34  |
Eclipse User |
|
|
|
A snippet.
I used it to load dynamically a jar and run it,
or more exactly invoke main(String[] ) on a class from the jar.
import java.io.File;
import java.lang.reflect.Method;
import java.net.*;
/**
* A class loader for loading jar files from a plugin
* Example use :
* String libName = "C:/java/javacc3.0/bin/lib/javacc.jar";
* String[] args = new String[1];
* args[0] = "C:/java/javacc3.0/examples/JavaCCGrammar/JavaCC.jj";
* ClassLoader cl = libName.getClass().getClassLoader();
* URL url = new URL("file", null, libName);
* JarLoader runtime = new JarLoader(url, cl);
* Class run = runtime.loadClass("org.netbeans.javacc.parser.Main");
* Method m = run.getMethod("mainProgram", new Class[] { args.getClass()});
* Object obj = c.newInstance();
* m.invoke(obj, new Object[] { args });
*
* Beware of working directory, which cannot be changed.
*/
class JarLoader extends URLClassLoader {
/**
* Creates a new JarClassLoader for the specified url.
* @param url the url of the jar file
*/
public JarLoader(URL url, ClassLoader parent) {
super(new URL[] { url }, parent);
}
}
HTH
Rémi Koutchérawy
|
|
|
Powered by
FUDForum. Page generated in 0.04679 seconds