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 :

ClassNotFoundException dans un JAR


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut ClassNotFoundException dans un JAR
    Je suis en train de développer une application desktop avec Maven 2 et tout le bataclan et le résultat de tout ça c'est une archive JAR qui devrait être directement exécutable. Pour ça, j'ai fait en sorte que le fichier META-INF/MANIFEST.MF contienne les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Main-Class: org.epseelon.koala.Koala
    Class-Path: rome-0.8.jar jdom-1.0.jar xstream-1.2.jar annotations-1.0.
     jar xpp3-1.1.3.4.O.jar jdic-20060613.jar
    Pourtant quand j'exécute l'archive avec la ligne suivante:
    java -jar target/dist/myapp-1.0-SNAPSHOT-bin.jar
    J'obtiens le message d'erreur:
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/syndication/io/FeedException
    at org.epseelon.koala.Koala.main(Koala.java:38)
    Alors que com.sun.syndication.io.FeedException est dans la librairie rome-0.8.jar qui figure bien à la racine du JAR.

    Je ne comprends pas ce qui ne va pas. Est-ce que quelqu'un aurait une idée?

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar target/dist/myapp-1.0-SNAPSHOT-bin.jar
    C'est peut être une question bête mais pourquoi n'executes-tu pas ton jar directement à partir du dossier 'dist' ?

  3. #3
    Membre éclairé
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Par défaut
    Parce que sûrement à cause du problème ci-dessus, quand je double-clique sur le fichier ou que je l'exécute avec javaw, rien ne se passe...

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Attention, si j'ai bien compris tu as rome-0.8.jar à l'intérieur de myapp-1.0-SNAPSHOT-bin.jar?
    Tu ne peux pas imbriquer des jar comme ça (sinon ça ne fonctionne pas)...

    Soit tu mets tes .jar "au même niveau" en gérant le classpath, soit tu extrais tous tes jar "librairies" dans ton jar principal...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Par défaut
    mmh.. j'étais pourtant assez convaincu (voire persuadé) qu'on pouvait inclure ses dépendances dans un JAR de façon à pouvoir distribuer son application simplement...
    Sinon, j'ai trouvé ça sur google http://one-jar.sourceforge.net/ SANS essayer par contre
    Faudrait que je teste l'imbrication de jar mais c'est franchement pas la joie si il n'y a aucun moyen de distribuer facilement une application desktop java

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Wavyx
    mmh.. j'étais pourtant assez convaincu (voire persuadé) qu'on pouvait inclure ses dépendances dans un JAR de façon à pouvoir distribuer son application simplement...
    Sinon, j'ai trouvé ça sur google http://one-jar.sourceforge.net/ SANS essayer par contre
    Faudrait que je teste l'imbrication de jar mais c'est franchement pas la joie si il n'y a aucun moyen de distribuer facilement une application desktop java
    Comme je t'ai dit, il suffit d'extraire toutes tes "librairies" et de les intégrer dans un seul jar... (au lieu de mettre ton jar A dans ton jar B, tu mets le contenu de ton jar A dans ton jar B)

    C'est ce que je fais pour faire une appli en 1 fichier...

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2013, 12h02
  2. Réponses: 3
    Dernier message: 24/11/2006, 11h12
  3. [Jar][Classpath]Pb chargement resource classpath dans un jar
    Par Pill_S dans le forum Général Java
    Réponses: 20
    Dernier message: 01/10/2004, 20h12
  4. [JAR] Accéder à un fichier dans un jar
    Par Nanoua dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 06/07/2004, 13h00
  5. [jar] BufferedImage issue d'un .jpeg dans un jar
    Par tit_henry dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 13/05/2004, 10h09

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