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 :

[ JAR ] Manifest


Sujet :

Java

  1. #1
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut [ JAR ] Manifest
    Salut,

    J'aurai voulu savoir si mon manifest à l'air correct, j'ai un erreur lorsque j'éxecute mon Jar...

    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Main-Class: packageCDTheque.CDTheque
    Class-Path: CDTheque.jar

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Es-tu sûr que le problème vient de ton manifest ? Je n'ai jamais eu de problème de déploiement suite à un manifest douteux, inexistant ou dans un mauvais répertoire (non conforme à la norme J2EE).
    Perso, j'aurais ajouté une ligne

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    On dirait que ton jar se référence lui-même dans son Class-Path, ce qui est inutile.


    Ensuite ce serait utile d'avoir la commande que tu utilises pour lancer le jar ainsi que l'erreur que tu obtiens...

    a++

  4. #4
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Bon, voilà comment j'ai procédé... pas trop le temps de voir ça en détail maintenant => Up||Edit demain!



    En fait, après quelques tatonnements, l'erreur a changé, j'ai l'impression que c'est la classe main qui pose problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    pogo@pogo-pc:~$ cd workspace/CDTheque/
    pogo@pogo-pc:~/workspace/CDTheque$ cd packageCDTheque
    pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ jar cvmf manif CDThqJar.jar *.class
    manifest ajouté
    ajout : CD.class(entrée = 3253) (sortie = 1284)(60% compressés)
    ajout : CDFrame.class(entrée = 11247) (sortie = 5137)(54% compressés)
    ajout : CDTheque.class(entrée = 794) (sortie = 413)(47% compressés)
    ajout : Database.class(entrée = 9877) (sortie = 4343)(56% compressés)
    ajout : Emprunt.class(entrée = 1405) (sortie = 652)(53% compressés)
    ajout : Personne.class(entrée = 1723) (sortie = 835)(51% compressés)
    pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ java -jar CDThq.jar
    Unable to access jarfile CDThq.jar
    pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$ java -jar CDThqJar.jar
    Exception in thread "main" java.lang.NoClassDefFoundError: packageCDTheque/CDTheque
    pogo@pogo-pc:~/workspace/CDTheque/packageCDTheque$

  5. #5
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    pourquoi ne pas faire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Main-Class: packageCDTheque.CDTheque
    Class-Path: CDTheque
    puisque tes ressources semblent se trouver dans le dossier CDTheque

  6. #6
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bassim Voir le message
    puisque tes ressources semblent se trouver dans le dossier CDTheque
    Non : l'attribut Class-Path sert à référencer d'éventuelle autre librairie nécessaire à l'exécution du programme (driver JDBC, librairies tierces, etc.), et non pas à référencer le répertoire du projet...

    Citation Envoyé par bassim Voir le message
    En fait, après quelques tatonnements, l'erreur a changé, j'ai l'impression que c'est la classe main qui pose problème.
    En effet : la classe main n'est pas correctement ajouté à l'archive, puisqu'il faut conserver l'arborescence des packages à l'intérieur du jar. Or tu n'ajoutes que les classes...


    Donc utilises le manifest suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Main-Class: packageCDTheque.CDTheque
    (attention à bien laisser une ligne vide à la fin)


    Ensuite tu te rend dans le répertoire de base de ton classpath, c'est à dire celui qui contient le répertoire de base de ton arborescence en package : /workspace/CDTheque/ dans ton cas et tu ajoutes tes packages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pogo@pogo-pc:~/workspace/CDTheque$ jar cvmf manif CDThqJar.jar packageCDTheque
    Et cela devrait marcher mieux

    a++

  7. #7
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Non : l'attribut Class-Path sert à référencer d'éventuelle autre librairie nécessaire à l'exécution du programme (driver JDBC, librairies tierces, etc.), et non pas à référencer le répertoire du projet...
    oui t'as raison à force d'utiliser les EDIs, j'oublie parfois la notion de classPath

    sinon la deuxième citation n'est pas de ma part

  8. #8
    Membre régulier

    Profil pro
    Enseignant
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 99
    Points
    99
    Par défaut
    Mais-Class: doit contenir le nom de la classe qui contient la fonction main().

    Class-Path: pour réferencer d'autre .jar que vous avez importé (comme vous avez cité: les drivers JDBC par exemple).

    Le fichier doit contenir un saut de ligne à la fin.

  9. #9
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Youplà Boum! Ben merci beaucoup, grâce à vos conseils, ça marche! ... ... chez moi.

    Et c'est bien beau, mais lorsque que j'emmene mon jar et mon petit fichier qui contient la commande "java -jar monJar.jar" et que j'exécute, ca me dit grossomodo que les classes que j'ai utilisé pour l'interface graphique (entre autre celles d'AWT et de SWING) sont introuvable. J'en déduis qu'il faut que j'inclue ces classes dans mon Jar. La question est : y a-t-il une technique particulière pour le faire ou est-ce que je vais chercher tel un barbare les .class là où ils sont?

    Merci d'avance.

Discussions similaires

  1. [JAR][Manifest] classpath trop long
    Par zolive dans le forum Général Java
    Réponses: 5
    Dernier message: 22/03/2007, 16h46
  2. [m2] war & jar : manifest vide
    Par denisC dans le forum Maven
    Réponses: 7
    Dernier message: 16/02/2007, 14h41
  3. [JAR] Manifest et comparaison de version
    Par nana1 dans le forum Général Java
    Réponses: 3
    Dernier message: 23/02/2006, 18h01
  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