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

avec Java Discussion :

Classe non trouvée dans le classpath


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Classe non trouvée dans le classpath
    Je pensais comprendre le fonctionnement du classpath dans la commande java mais je suis tombé sur le problème suivante :

    première commande :

    java -cp ./bin:~/INGI2339.jar Test

    j'obtiens l'erreur :

    Exception in thread "main" java.lang.NoClassDefFoundError: slip/grammars/Grammar
    Caused by: java.lang.ClassNotFoundException: slip.grammars.Grammar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

    seconde commande :

    java -cp ~/INGI2339.jar:./bin Test

    Là le programme s'exécute normalement.
    La classe recherchée se trouve dans le fichier .jar. Pourquoi n'est-elle pas trouvée lors de l'exécution de la première commande ? J'ai beau chercher dans les descriptions de la façon dont les classes sont recherchées dans la documentation officielle, je ne trouve aucun explication.

    Merci à celui qui pourra m'éclairer.

    Baudouin

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut J'ai cerné le problème :
    J'ai cerné le problème :

    java -cp ./bin:~/INGI2339.jar Test
    Exception in thread "main" java.lang.NoClassDefFoundError: slip/grammars/Grammar
    Caused by: java.lang.ClassNotFoundException: slip.grammars.Grammar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

    java -cp ./bin:/Users/blc/INGI2339.jar Test
    Pas d'erreur

    ls ~/INGI2339.jar
    /Users/blc/INGI2339.jar

    D'où il nous faut déduire que le "class loader" plante quand il "parse" ~/INGI2339.jar !!! Vivent les programmeurs "système" !

    Remarquons que

    java -cp ~/INGI2339.jar:./bin Test
    ne provoque pas d'erreurs

    Donc, il "parse" correctement quand le ~ est au début du classpath !!!

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Solution géniale !
    J'avais tapé la solution. Mais une fausse manoeuvre a tout dilité ! Pas de chance !

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par blecharlier Voir le message
    D'où il nous faut déduire que le "class loader" plante quand il "parse" ~/INGI2339.jar !!! Vivent les programmeurs "système" !
    Le classloader n'a rien à voir là dedans ! Il va falloir te plaindre auprès des développeurs du shell Unix/Linux...

    a++

Discussions similaires

  1. Fichier non trouvé dans le classpath
    Par X448GN dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 15/09/2008, 09h21
  2. [ORACLE9i][XML]:ORA-29540: classe non trouvée
    Par anaon dans le forum Oracle
    Réponses: 8
    Dernier message: 15/11/2005, 20h02
  3. [Plugin] Classe non trouvée au runtime
    Par toto_toto dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 15/02/2005, 10h36
  4. [debutant][Classpath][Linux] Classe non trouvée
    Par oghma777 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/10/2004, 21h26

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