nocxsville
Gast
Hi ich habe folgendes Problem:
Ich möchte eine Klasse aus einem jar-Archiv laden (bzw. ein Objekt davon erzeugen). Mein bisheriger (vereinfachter) Code sieht so aus:
import java.net.URL;
import java.net.URLClassLoader;
import myapp.MyPlugin;
public class Main {
public static void main(String[] args) throws Exception {
URL [] urls = {new URL("file://K:/myapp/plugin/foo.jar")};
ClassLoader classLoader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
MyPlugin plug = (MyPlugin) classLoader.loadClass("myapp.plugin.TestPlugin").newInstance();
}
}
So wie es momentan implementiert ist läd der URLClassLoader die Klasse TestPlugin, die sich in dem Verzeichnis "file://K:/myapp/plugin/" befindet, jedoch nicht (wie ursprünglich gewollt) die Klasse "TestPlugin" aus meinem jar-Archiv. Kann mir einer erklären, wie ich auf Klassen innerhalb eines jar-Archivs zugreifen kann oder noch besser was ich an diesem Code verändern muss, damit es klappt?
THX
Ich möchte eine Klasse aus einem jar-Archiv laden (bzw. ein Objekt davon erzeugen). Mein bisheriger (vereinfachter) Code sieht so aus:
import java.net.URL;
import java.net.URLClassLoader;
import myapp.MyPlugin;
public class Main {
public static void main(String[] args) throws Exception {
URL [] urls = {new URL("file://K:/myapp/plugin/foo.jar")};
ClassLoader classLoader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
MyPlugin plug = (MyPlugin) classLoader.loadClass("myapp.plugin.TestPlugin").newInstance();
}
}
So wie es momentan implementiert ist läd der URLClassLoader die Klasse TestPlugin, die sich in dem Verzeichnis "file://K:/myapp/plugin/" befindet, jedoch nicht (wie ursprünglich gewollt) die Klasse "TestPlugin" aus meinem jar-Archiv. Kann mir einer erklären, wie ich auf Klassen innerhalb eines jar-Archivs zugreifen kann oder noch besser was ich an diesem Code verändern muss, damit es klappt?
THX