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 :

Utilisation de jar avec jakarta commons-cli


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Consultant
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Utilisation de jar avec jakarta commons-cli
    Bonjour,
    Je développe un projet de mini blog (à des fins de pédagogie)
    Pour ceci j'utilise commons-cli-1.1.jar
    et une biliothèque de ma création myutils

    1) ma lib myutils est sur le chemin com.afc.libs.myutils.xxx, elle est placée dans un jar
    et on y accède corectement.
    2) la lib jakarta est dans le jar téléchargé
    Un accès provoque l'erreur habituelle :
    exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at com.afc.blog.Log.main(Log.java:573)

    J'utilise sous windows XP le batch suivant :
    ------------------------------------------------
    rem MYBLOG running with jars
    rem 22/08/2007 17:34:22
    set libj=V:\dev\java\lib_java\jar
    set CLI=%libj%\commons-cli-1.1.jar
    set LANG=%libj%\commons-lang-2.3.jar
    set UT=%libj%\myutils.jar
    set CP=%proj%;%CLI%;%LANG%;%UT%
    java -classpath %CP% -jar myblog.jar --date "15 août 2007" --user ABF
    dir %libj%
    echo %CLI%
    echo %LANG%
    pause
    -----------------------------------------------------------------
    Les commandes semblent OK
    Les fichiers existent
    les fichiers jars contiennent bien les chemins attendus.
    Je vois bien myutils,
    mais pas les classes de commons-cli-1.1.jar
    Le programme démarre.

    V:\dev\java\lib_java\jar>java -cp V:/dev/java/lib_java/jar;V:\dev\java\lib_java\jar\commons-cli-1.1.jar;
    V:\dev\java\lib_java\jar\commons-lang-2.3.jar;V:\dev\java\lib_java\jar\myutils.jar -jar myblog.jar --date "15 aout 2007" --user ABF
    MyUtils version => 0.5 : 2007/08/15
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at com.afc.blog.Log.main(Log.java:573)


    J'ajoute que sous Ecipse tout cela fonctionne.

    Quelqu'un a t il une idée?

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par sphinxmoro Voir le message
    Bonjour,
    Je développe un projet de mini blog (à des fins de pédagogie)
    Pour ceci j'utilise commons-cli-1.1.jar
    et une biliothèque de ma création myutils

    1) ma lib myutils est sur le chemin com.afc.libs.myutils.xxx, elle est placée dans un jar
    et on y accède corectement.
    2) la lib jakarta est dans le jar téléchargé
    Un accès provoque l'erreur habituelle :
    exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at com.afc.blog.Log.main(Log.java:573)

    J'utilise sous windows XP le batch suivant :
    ------------------------------------------------
    rem MYBLOG running with jars
    rem 22/08/2007 17:34:22
    set libj=V:\dev\java\lib_java\jar
    set CLI=%libj%\commons-cli-1.1.jar
    set LANG=%libj%\commons-lang-2.3.jar
    set UT=%libj%\myutils.jar
    set CP=%proj%;%CLI%;%LANG%;%UT%
    java -classpath %CP% -jar myblog.jar --date "15 août 2007" --user ABF
    dir %libj%
    echo %CLI%
    echo %LANG%
    pause
    -----------------------------------------------------------------
    Les commandes semblent OK
    Les fichiers existent
    les fichiers jars contiennent bien les chemins attendus.
    Je vois bien myutils,
    mais pas les classes de commons-cli-1.1.jar
    Le programme démarre.

    V:\dev\java\lib_java\jar>java -cp V:/dev/java/lib_java/jar;V:\dev\java\lib_java\jar\commons-cli-1.1.jar;
    V:\dev\java\lib_java\jar\commons-lang-2.3.jar;V:\dev\java\lib_java\jar\myutils.jar -jar myblog.jar --date "15 aout 2007" --user ABF
    MyUtils version => 0.5 : 2007/08/15
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    at com.afc.blog.Log.main(Log.java:573)


    J'ajoute que sous Ecipse tout cela fonctionne.

    Quelqu'un a t il une idée?
    Alors il faut savoir un truc, c'est quand tu utilise l'option -jar de java, l'option -classpath est purement et simplement ignorée.

    Pour spécifier un jar à utiliser dans ton jar exécutable il faut définir une clause Class-Path dans le manifest de ton jar.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Membre à l'essai
    Profil pro
    Consultant
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    En fait le classpath n'est pas ignoré
    Il faut certainement placer dans le manifest la classe principale
    ou alors utiliser ceci qui fonctionne (on cite diectement la main class)

    set libj=V:\dev\java\lib_java\jar
    set CLI=%libj%\commons-cli-1.1.jar
    set LANG=%libj%\commons-lang-2.3.jar
    set UT=%libj%\myutils.jar
    set APP=%libj%\myblog.jar
    set CP=%proj%;%CLI%;%LANG%;%UT%;%APP%
    java -classpath %CP% com.afc.blog.Log --date "15 août 2007" --user ABF


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

Discussions similaires

  1. Utiliser un jar avec netbeans
    Par Mo_Poly dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 23/03/2012, 03h33
  2. créer un fichier.jar avec un programme java utilisant la librairie SWT
    Par Mohrades dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 24/02/2011, 14h44
  3. Réponses: 15
    Dernier message: 21/01/2009, 10h32
  4. Java.exe avec .jar utilisant autre .jar
    Par SheikYerbouti dans le forum Langage
    Réponses: 5
    Dernier message: 05/11/2007, 17h26
  5. cmt utiliser jakarta.common.lang ?
    Par tsikpemoise dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2006, 23h48

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