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 :

Problème compilation d'un jar


Sujet :

Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut Problème compilation d'un jar
    Bonjour à tous,

    Je suis sur un projet j'arrive a la conclusion.

    seul soucis quand je fais un jar exécutable de mon travail il se lance pas quand je clique dessus. alors quand compilant dans Eclipse ça passe nikel.

    j'ai donc fais en ligne de commande

    je trouve comme erreur cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    in thread "main" java.lang.NoclassDefFoundError : com/jcraft/jsch/JSche
    alors que dans eclipse j'ai pas cette erreur.

    Quelqu'un pourrais me dire comment faire

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Cela depend de la manière dont tu as crée ton jar.

    Je suppose que sous eclipse tu as fait un export de ton projets.

    Mais il y'a deux possibilité pour Export :
    "Jar file".

    ou

    "Runnable Jar file".

    J'imagine que tu as utilisé "Jar file". Donc j'imagine que tu n'as pas remplis le fichier MANIFEST.MF en y indiquant les librairies ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    merci ! je vais faire le manifest


    edit =>

    Je viens de faire le manifest par convention il est dans un rpertoire du projet /META-INF/MANIFEST.MF

    je tape cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java cvfm Monprojet.jar ./META-INF/MANIFEST.MF ./Mon_Rep_LIB/
    et j'ai cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERREUR : impossible de trouver la classe ou de charger la classe cvfm

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour ta dernière erreur, a mon a vis tu as oublié un tiret devant cvfm

    pour ta première erreur, vérifie que tu as bien dans ton Manifest une entrée class-path référencant tous les jars dont dépendent ton projet et que ces jar sont bien à l'endroit référencé.

    Eclipse a plusieurs manière de gérer les dépendances:

    A l'intérieur du jar. Tu obtiens un gros jar avec d'autre jar dedans et un petit programme que eclipse inject dont le rôle est de charger ces jar. Rapide, facile, mais t'as du code de eclipse dedans :-)

    A l'intérieur du jar, mais explosé: eclipse ouvre tous tes jars des dépendance, récupère ce qu'il y a dedans et le met dans ton jar principal. Pas de code spécifiques pour charger les dépendances, mais des effets de bord quand plusieurs jars ont en interne une ressources ayant le même nom

    A l'extérieur du jar avec les entrées classpath dans le MANIFEST.MF: c'est standard, mais tu dois préciser à quel endroit relatif au jar tu compte mettre tes librairies.

    Tout ça se trouve dans la boite de dialogue lors de la création du jar

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    j'ai reussi et quand je lance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar monprojet.jar
    la jvm retourne toujours qu'il manque des librairies.


    Edit =>

    voici mon Manifest

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Manifest-Version: 1.0 
    Created-By: 6.0.0 (Eveacom) 
    Main-Class: main.main
    Class-Path: .././mes_lib/
    dans ce repertoire j'ai toutes mes libs
    quand je créer mon jar sous eclipse je lui dit donc de joindre ce repertoire.

    dans j'utilise winrar sur le jar je vois bien le repertoire avec toutes les libraries

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non, dans l'entrée classpath, il doit y avoir tous les jar, pas juste le nom d'un dossier.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    donc un truc du genre là


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Manifest-Version: 1.0 
    Created-By: 6.0.0 (Eveacom) 
    Main-Class: main.main
    Class-Path: .././mes_lib/acrobat-1.1.jar .././mes_lib/commons-cli-1.2.jar

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 098
    Par défaut
    Citation Envoyé par jchevalay54 Voir le message
    .././
    Ton ../ me semble foireux mais bon, en theoris tu devrais avoir des lib/malib.jar
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    j'ai ça maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Manifest-Version: 1.0 
    Created-By: 6.0.0 (Eveacom) 
    Main-Class: main.main
    Class-Path: mes_libs/acrobat-1.1.jar mes_lib/commons-cli-1.2.jar 
    Class-Path: mes_lib/ganymed-ssh2-build210.jar 
    Class-Path: mes_lib/jcl104-over-slf4j-1.4.3.jar mes_lib/jdom-2.0.2.jar 
    Class-Path: mes_lib/JMyron.jar 
    Class-Path: mes_lib/jsch-0.1.44.jar 
    Class-Path: mes_lib/log4j-over-slf4j-1.4.3.jar mes_lib/logback-classic-1.0.7.jar 
    Class-Path: mes_lib/logback-core-1.0.7.jar  mes_lib/ModbusPET7060.jar 
    Class-Path: mes_lib/slf4j-api-1.6.6.jar  mes_lib/slf4j-log4j12-1.6.6.jar 
    Class-Path: mes_lib/xuggle-xuggler-5.4.jar mes_lib/xuggle-xuggler-test.jar
    et j'ai toujours libraire manquantes

    de ce que je remarque celle manquant ce com.jcraft.jsch quelque chose ce trouve dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mes_lib/jsch-0.1.44.jar
    le structure de mon projet est :
    mes_source/
    META-INF/
    mes_lib/

    je les sélectionnes tous les trois quand j'exporte mon projet en jar

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    de mémoire tout doit être dans une seule entrée Class-Path!

  11. #11
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    quand je met un seule linge eclispe rale il met une erreur line to long

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Manifest-Version: 1.0 
    Created-By: 6.0.0 (Eveacom) 
    Main-Class: main.main
    Class-Path: mes_lib/acrobat-1.1.jar mes_lib/commons-cli-1.2.jar  mes_lib/ganymed-ssh2-build210.jar  mes_lib/jcl104-over-slf4j-1.4.3.jar mes_lib/jdom-2.0.2.jar mes_lib/JMyron.jar  mes_lib/jsch-0.1.44.jar mes_lib/log4j-over-slf4j-1.4.3.jar mes_lib/logback-classic-1.0.7.jar  mes_lib/logback-core-1.0.7.jar  mes_lib/ModbusPET7060.jar mes_lib/slf4j-api-1.6.6.jar  mes_lib/slf4j-log4j12-1.6.6.jar  mes_lib/xuggle-xuggler-5.4.jar mes_lib/xuggle-xuggler-test.jar
    met bien line to long

    apres modif j'ai mis cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Manifest-Version: 1.0 
    Created-By: 6.0.0 (Eveacom) 
    Main-Class: main.main
    Class-Path: ./mes_lib/ acrobat-1.1.jar commons-cli-1.2.jar  ganymed-ssh2-build210.jar  jcl104-over-slf4j-1.4.3.jar jdom-2.0.2.jar JMyron.jar  jsch-0.1.44.jar log4j-over-slf4j-1.4.3.jar logback-classic-1.0.7.jar  logback-core-1.0.7.jar  ModbusPET7060.jar slf4j-api-1.6.6.jar  slf4j-log4j12-1.6.6.jar  xuggle-xuggler-5.4.jar xuggle-xuggler-test.jar
    ça ne râle plus mais j'ai toujours la même erreur

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pour la ligne trop longue, il suffit de mettre un retour à la ligne régulièrement avec un espace en tête de la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Class-Path: mes_lib/acrobat-1.1.jar mes_lib/commons-cli-1.2.jar  mes_lib/ganymed
     -ssh2-build210.jar  mes_lib/jcl104-over-slf4j-1.4.3.jar mes_lib/jdom-2.0.2.jar 
     mes_lib/JMyron.jar  mes_lib/jsch-0.1.44.jar mes_lib/log4j-over-slf4j-1.4.3.jar 
     mes_lib/logback-classic-1.0.7.jar  mes_lib/logback-core-1.0.7.jar  mes_lib/Modb
     usPET7060.jar mes_lib/slf4j-api-1.6.6.jar  mes_lib/slf4j-log4j12-1.6.6.jar  mes
     _lib/xuggle-xuggler-5.4.jar mes_lib/xuggle-xuggler-test.jar


    Ceci dit, comme je l'ai déjà dit, sous eclipse, tout se trouve dans la boite de dialogue de création du jar :

    file -> export -> runnable jar file

    et tu n'a pas à te soucier du contenu de manifest.mf

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    pourtant mais en faisant export -> runnable jar

    mon projet se lance pas. alors que si je le lance a partir d'eclipse tout va bien il se lance et tout.

    après maintes essayes il fallait spécifier dans un seul Class-Path ./mes_lib/xxxx.jar ./mes_lib/xxxx.jar

    voilà.

    merci

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

Discussions similaires

  1. [Kylix] Problème de compilation
    Par rabbi_jaccob dans le forum EDI
    Réponses: 3
    Dernier message: 25/07/2005, 23h36
  2. Problème compilation (toolkit Maximum Entropy)
    Par yannick_frere dans le forum MFC
    Réponses: 4
    Dernier message: 07/03/2005, 09h47
  3. Problème compilation Version 8.0.1 sous Debian Sarge
    Par LIndien dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/02/2005, 21h38
  4. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21
  5. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21

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