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

Java Discussion :

[Manifest][jar] NoClassDefFoundError ...


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut [Manifest][jar] NoClassDefFoundError ...
    Hum ... salut !

    Voila j'ai créer un petit prog ( 30 Ko ) qui utilise l'API POI ( poi.jar = 770 Ko)

    j'ai créer un joli fichier Manifest

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Manifest-Version: 1.0
    Created-By: Slein
    Main-Class: InterfacePrincipale
    Class-Path: poi.jar
    dans mon repertoire j'ai
    -POI.jar
    -les *.class
    -Manifest

    alors je tape la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar -cmvf Manifest poi.jar *.class
    ca semble marcher ... mais qd je lance mon application une joli exception
    NoClassDefFound des le premier appel a une classe de POI ....

    Si qlq'un pouvait m'aider mici ...

    EDIT :
    J'oubliais ... est ce que c possible de choper que certaines classes de POI ... pour eviter de faire un JAR de gros porc (800 Ko oué c pas la mort mais bon .. ) alors que mon appli ne fait que 30 Ko.... un jar -x ?? ca semblait rien faire

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    bah tu décompresses ton jar avec par exemple winzip, puis tu copies avec le chemin complet les classes avec ton code source.
    En plus, comme ça, t'as pas besoin de mettre de class path parce que ca sera directement dans ton jar. Et là, si tout se passe bien, fini les NoClassDefFound

  3. #3
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    Tu n'as pas besoin de mettre poi.jar dans ton propre jar. Tu peux le laisser à côté.
    Par contre, tu dois indiquer dans l'attribut Class-Path du Manifest le chemin des librairies extérieures utilisées.
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Tu lances bien ton jar avec la commande
    java -jar nom _du_jar.jar

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    Archangelo > Oui .. mais ca reviens a double cliquer sur le jar executable non ?

    vedaer >
    Mon manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Manifest-Version: 8112.4 
    Created-By: Slein
    Main-Class: Controle
    Class-Path: POI/poi.jar
    Le repertoire ou se trouve mon jar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    |
     \_ monJar.jar
    |
     \_ POI 
          \_poi.jar
    mais ca marche toujours pas .....

    riloo >
    j'extrait les fichiers que j'utilise dans le repertoire qui contient mes *.class ... mais toujours le meme probleme ....

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    Bon .. j'ai reussi ... mais avec Eclipse .. meme si son generate Manifest m'a generer n'importe quoi (note : toujours accuser l'EDI.. c'est jamais une mauvaise utilisation !!!) apres une petite modification j'obtient ce fichier Manifest qui ressemble certes, etrangement au mien ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Manifest-Version: 1.0
    Main-Class: Controle
    Class-Path: .\POI\poi.jar
    Alors j'ai pensé que c'etait du aux separateurs ... alors j'ai recommencé en mode manuel avec le fichier Manifest d'Eclipse, et la surprise ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
    Je ne comprends pas ce qu'eclipse fait mieux que moi ..... ... m'enfin bon ....

  7. #7
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    essayes avec juste un espace apres
    comme ca sans eclipse tu peux faire un jar

    si tu ne l'a pas déjà fais bien sur...moi j'avais cette erreur, j'ai rajouté un espace et hop rulez le package etait bien reconnu comme il faut, tiens nous au courant
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    euh.... merci lol.... tu m'as aidé a trouver la solution ...
    mon fichier manifest fait 70 octets contre 72 pour celui d'Eclipse .... j'ai rajouté un espace mais ca n'a rien fait .... mais j'ai rajouté juste un saut de ligne apres la ligne Class-Path et ca a marché ....
    Je suis vraiment trop deg ... je cherche depuis trop longtemps tout ca a cause de ca ...

    Merci beaucoup en tout cas

  9. #9
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    ah oui y a une syntaxe a respecter...
    je comprends je suis passer par la, et g mis du temps et j'ai eu un peu de chance pour trouver
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [jdk 1.5] modifier manifest jar executable
    Par fregolo52 dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 25/06/2009, 09h04
  2. [JAR][Manifest] classpath trop long
    Par zolive dans le forum Général Java
    Réponses: 5
    Dernier message: 22/03/2007, 16h46
  3. [JAR]Class-Path dans le fichier Manifest
    Par Kleb dans le forum Général Java
    Réponses: 5
    Dernier message: 08/01/2005, 08h51
  4. [jar] Manifest
    Par djskyz dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2004, 10h58
  5. [débutant][jar][Manifest.MF]
    Par Stessy dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 06/08/2003, 19h54

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