IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Erreur utilisation d'un UrlClassLoader


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    On avance.
    J'ai relu attentivement cette page http://download.oracle.com/javase/1....assLoader.html et je me suis rendu compte que je devais non pas donner une class dans mon url mais un dossier. Je l'ai fait et maintenant j'ai une erreur autre part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.lang.IllegalAccessException: Class Jvideotheque can not access a member of class TestPlugin with modifiers ""
    	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
    	at java.lang.Class.newInstance0(Class.java:349)
    	at java.lang.Class.newInstance(Class.java:308)
    	at Jvideotheque.main(Jvideotheque.java:20)
    ma class jvideotheque est la classe avec le main() que j’exécute et il n'y a rien d'autre dedans.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Je suis un boulet. Mon problème est résolu. Dire que j'y est passé la soirée d'hier et que là je résous mon problème en 5 minutes.

    Bref, pour ceux que ça peut aider, le constructeur de TestPlugin n'était pas public d'où le dernier problème.

Discussions similaires

  1. [Erreur] Utilisation du "Run as"
    Par guilopouloos dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/02/2007, 10h30
  2. Erreur utilisation des commandes shell
    Par paolo2002 dans le forum Windows XP
    Réponses: 7
    Dernier message: 05/11/2006, 14h09
  3. erreur : utilisation incorrecte du mot clé
    Par StyleXP dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/02/2006, 09h24
  4. Erreur utilisation de type indéfini
    Par hanane_iaai dans le forum C++
    Réponses: 3
    Dernier message: 04/07/2005, 17h34
  5. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo