Erreur utilisation d'un UrlClassLoader
Bonjour tout le monde,
Je suis en train de concevoir une application et j'aimerais y intégrer un système de plugin et j'ai même regardé le tuto : http://vincentlaine.developpez.com/t.../java/plugins/
Je vous explique maintenant le problème.
J'ai donc fait une interface InterfacePlugin.class
Ensuite j'ai fait un test en créant une class TestPlugin.class dans le dossier /plugin et qui implémente bien sur mon interface.
Je vous montre mon code et ensuite les erreurs :
Code:
1 2 3 4 5 6
| File f=new File("plugin/TestPlugin.class");
URL[] u=new URL[]{f.toURL()};
URLClassLoader loader=new URLClassLoader(u);
Class tempClass=Class.forName("plugin.TestPlugin",true,loader);
InterfacePlugin essai=(InterfacePlugin)tempClass.newInstance();
System.out.println(essai.toString()); |
et voici ce que m'affiche le terminal comme erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Exception in thread "main" java.lang.NoClassDefFoundError: plugin/TestPlugin (wrong name: TestPlugin)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:296)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at Jvideotheque.main(Jvideotheque.java:23) |
Si quelqu'un a une idée.
Merci