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 :

-classpath ecraser par le classpath du fichier manifest?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 7
    Par défaut -classpath ecraser par le classpath du fichier manifest?
    Bonjour,

    ci dessous, la commande suivante :
    java -classpath myDirectory -jar monJar.jar

    est-ce que la definition du classpath par l'option "-classpath" est ecrasé pas le classpath declaré dans le manifest du jar "monJar.jar"

    En effet je pensais que le classpath du manifest s'additionnait avec le "-classpath".

    J'ai un projet qui depend de plusieurs librairies et j'aimerais en séparé certaines dans un repertoires distinct. Je pensais réferencer ce repertoire distinct dans le classpath au lancement de l'application par l'option -classpath

    En fait l'exception que j'ai ,c'est un NoClassDeFoundException. Il ne trouve pas mes classes du repertoire distinct.
    Que dois-je faire?

    Merci de votre aide

  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,

    Citation Envoyé par unmecenor
    est-ce que la definition du classpath par l'option "-classpath" est ecrasé pas le classpath declaré dans le manifest du jar "monJar.jar"
    Oui ! C'est indiqué dans la doc :
    http://java.sun.com/j2se/1.5.0/docs/...java.html#-jar
    Citation Envoyé par -jar
    When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.
    Tu dois utiliser le Class-Path du manifest pour tous les jar externes...

    a++

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par unmecenor
    est-ce que la definition du classpath par l'option "-classpath" est ecrasé pas le classpath declaré dans le manifest du jar "monJar.jar"
    Oui, tout à fait

    Citation Envoyé par unmecenor
    J'ai un projet qui depend de plusieurs librairies et j'aimerais en séparé certaines dans un repertoires distinct. Je pensais réferencer ce repertoire distinct dans le classpath au lancement de l'application par l'option -classpath
    En fait l'exception que j'ai ,c'est un NoClassDeFoundException. Il ne trouve pas mes classes du repertoire distinct.
    Que dois-je faire?
    Ce que tu peux faire, et qui se fait assez fréquemment, c'est de créer un repertoire lib (qui contient toutes tes librairies) au même niveau que ton jar et ensuite tu renseigne le classpath du manifest.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class-Path: lib/lib1.jar lib/lib2.jar
    Au final tu te retrouve avec l'arborescence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MonAppli
        |_monappli.jar
        |_lib
            |_lib1.jar
            |_lib2.jar
    Comme ça tu as juste un répertoire à distribuer .


    [edit] grillé [/edit]
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 7
    Par défaut
    Ok je vous remercie,

    En fait ce que j'ai oublié de préciser, c'est que je travail avec maven.
    J'aimerais lorsque je package mon jar que je n'aie pas retoucher mon fichier manifest pour faire la separation des fichiers externes. Avez vous une idée sur comment preciser a maven d'aller chercher certaines librairies dans un repertoire separé.

    Merci.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/03/2009, 11h01
  2. [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
  3. Erreur avec fichier .manifest
    Par engi dans le forum Windows
    Réponses: 2
    Dernier message: 16/11/2004, 14h58
  4. [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
  5. [ClassPath] Comment modifier le classpath d'eclipse?
    Par Elmilouse dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/04/2004, 18h32

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