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 :

inclure des libs dans un jar


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut inclure des libs dans un jar
    Bonjour, j' ai problème pour faire marcher un fichier .jar que je crée à partir d' un projet eclipse :
    Le fichier jar que je crée en exportant mon projet contient un dossier lib, qui lui-même contient d' autres jar nécessaires au projet.
    Quand j' exécute mon jar en ligne de commande : java -jar cvonline.jar
    J' ai l' erreur :Exception in thread "main" java.lang.NoClassDefFoundError : org/apache/commons/digester/Digester at ... at ...main (avec la ligne où j' appelle une méthode d' un jar).

    Donc en gros je n' arrive pas à inclure les bibliothèques dans le classpath de cvonline.jar.
    Eclipse ne le fait aps automatiquement (où je n' ai pas trouvé comment faire) donc j' essayé à la main, voici mon fichier MANIFEST.mf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: repetAction.RepetAction
    Class-Path: .\lib\commons-digester-1.8.jar;lib\commons-beanutils-bean-collections.jar;lib\commons-beanutils-core.jar;lib\commons-beanutils.jar;lib\commons-collections-3.2.jar;lib\commons-collections-testframework-3.2.jar;lib\commons-logging-1.1.jar;lib\commons-logging-adapters-1.1.jar;lib\commons-logging-api-1.1.jar;lib\mysql-connector-java-5.0.5-bin.jar
    J' ai essayé beaucoup de choses pour le class path :
    .\lib\machin.jar -- ..\lib\machin.jar -- lib\machin.jar et les mêmes avec un "/" au lieu d' un "\". Aucun ne semble marcher, je me demande si mon manifest est vraiment pris en compte ...

    Tout marche correctement sous Eclipse, ou quand je lance le main en ligne de commande (avec un classpath configuré à la main).

    Quelqu' un peut m' aider ?
    Merci d' avance.

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    L'attribut Class-Path du fichier Manifest doit contenir les fichiers séparé par un espace. Le tout en utilisant '/' pour des raisons de portabilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class-Path: lib/commons-digester-1.8.jar lib/commons-beanutils-bean-collections.jar lib/commons-beanutils-core.jar lib/commons-beanutils.jar lib/commons-collections-3.2.jar lib/commons-collections-testframework-3.2.jar lib/commons-logging-1.1.jar lib/commons-logging-adapters-1.1.jar lib/commons-logging-api-1.1.jar lib/mysql-connector-java-5.0.5-bin.jar
    Et une fois le fichier jar créé, vérifie bien que le Manifest soit correct (avec un archiveur ZIP par exemple) : les lignes doivent être formaté pour ne pas dépassé les 80 caractères (ou un peu moins je ne sais plus).

    Enfin : le répertoire lib/ se trouve bien dans le même répertoire que ton jar principal et non pas à l'intérieur de ce dernier ??

    a++

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    merci pour ta réponse.

    Mon répertoir lib se trouve DANS cvonline.jar, et contient les jar que je veux utiliser. J' aimerais bien n' avoir qu' un seul fichier au final : cvonline.jar, qui contiendrait tout ce qu' il faut.

    je vais essayer ce que tu m' as proposé tout de suite. Et je reviens pour reposer des questions ... ou pour mettre un résolu (j' espère!) ^^


    EDIT : au fait tu dis qu' un ligne ne doit pas etre trop longue mais vu que j' ai plusieurs jar je dois juste faire une retour chariot, ou mettre une nouvelle ligne Class-Path ?

    EDIT2 : je n' y suis pas arrivé à la main. Une collègue m' a conseillé le plugin eclipse FAT JAT, qui ajoute tout seul les .jar, et ça marche nickel donc je reste là-dessus

    Merci encore !

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

Discussions similaires

  1. [ANT] Débutant : inclure des libs dans un JAR
    Par Tino13 dans le forum ANT
    Réponses: 4
    Dernier message: 29/01/2008, 13h31
  2. inclure des resources dans le jar avec build-impl.xml
    Par broumbroum dans le forum NetBeans
    Réponses: 2
    Dernier message: 08/01/2007, 15h24
  3. inclure des fichiers dans un .jar
    Par cysboy dans le forum Multimédia
    Réponses: 3
    Dernier message: 11/09/2006, 13h56
  4. Réponses: 5
    Dernier message: 11/04/2006, 16h39
  5. [JAR][DLL][path] inclure des DLLs dans un jar
    Par blaz dans le forum Général Java
    Réponses: 5
    Dernier message: 28/07/2005, 12h29

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