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

  1. #1
    Membre du Club
    NoClassDefFoundError: com/hp/hpl/jena/rdf/model/Resource
    Bonjour à tous,

    Une petite question : en exécutant mon programme Java dans une console, on m'affiche :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Exception in thread "main" java.lang.NoClassDefFoundError: com/hp/hpl/jena/rdf/model/Resource
    Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.rdf.model.Resource
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)


    Mon programme n'ayant aucune erreurs, je ne comprend pas. Si quelqu'un pouvais m'éclaircir...

    Merci

  2. #2
    Invité
    Invité(e)
    Salut

    Le message dit qu'il n'arrive pas à trouver une classe qui est de toute évidence dans une librairie externe. Il faut donc spécifier le classpath dans ta ligne de commande où se trouve cette bibliothèque. Si ton appli est un jar un petit tour dans la faq sur la création de jar pour savoir comment indiquer les bibliotèques externes dans le manifest et le tour est joué

  3. #3
    Membre du Club
    Salut,

    Mon APi est JENA, et pour être sur j'ai ajouté toute la "lib" dans
    Build Path->Configure Build Path...-> Add External JARs.

    Et mon programme me ressort le même message d'erreur !!

    Je ne sais pas quoi faire !

  4. #4
    Invité
    Invité(e)
    Ce que tu as fait c'est pour eclipse... Quand tu exécutes dans une console il faut préciser le classpath dans la commande, la jre n'a aucune idée de ce que tu as fait dans eclipse. Regarde dans la faq et sur internet avec les mots clefs : java et classpath, tu trouveras la solution.
    Si j'ai bien compris tu cherches à exécuter ton programme en dehors d'eclipse là, non ?

  5. #5
    Membre habitué
    Tu ajoute le path de ton jar dans CLASSPATH (Poste de Travail/proriétés/Onglet avancés/Variables d'environnement: tu clique sur path puis tu clique sur modifier puis t'ajoute point virgule et tu copie le path de ton jar et tu valide par ok).

  6. #6
    Membre confirmé
    La méthode de choko83 n'est pas vraiment conseillée.
    Il vaut mieux que tu modifies le classpath dynamiquement.

    Et pour celà regarde la solution 2 de la FAQ : http://java.developpez.com/faq/java/...FIER_CLASSPATH
    Pensez au tag
    Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php?

  7. #7
    Membre habitué
    Citation Envoyé par supermanu Voir le message
    La méthode de choko83 n'est pas vraiment conseillée.
    Il vaut mieux que tu modifies le classpath dynamiquement.

    Et pour celà regarde la solution 2 de la FAQ : http://java.developpez.com/faq/java/...FIER_CLASSPATH
    Honnetement cette méthode m'a résolu beaucoup de problèmes...

  8. #8
    Membre confirmé
    Ta méthode marche très bien en effet, mais tu centralises tout .

    Imagine que tu ais 2 applications différentes qui utilisent la même librairie mais avec des versions différentes. A chaque fois que tu lances une des applications, tu vas devoir changer ta variable d'environnement. Si tu tentes de faire cohabiter les deux versions dans le même classpath tu auras des surprises .
    Pensez au tag
    Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php?

  9. #9
    Membre habitué
    Citation Envoyé par supermanu Voir le message
    Ta méthode marche très bien en effet, mais tu centralises tout .

    Imagine que tu ais 2 applications différentes qui utilisent la même librairie mais avec des versions différentes. A chaque fois que tu lances une des applications, tu vas devoir changer ta variable d'environnement. Si tu tentes de faire cohabiter les deux versions dans le même classpath tu auras des surprises .
    Je savais pas, cela s'ajoute à mes connaissances de Java