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][debutant] encore une histoire de classpath


Sujet :

Java

  1. #1
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut [JAR][debutant] encore une histoire de classpath
    Bonjour,
    oui je sais... encore une histoire de JAR.
    J'ai passé la matinée à éplucher la doc, les faq, les posts de forum et je trouve pas.

    Je précise, je passe pas par eclipse (j'ai pas les droits pour l'installer)

    On admet que je suis dans c:\monprojet\
    J'ai développé un package java_coursvl

    Voici mon arborescence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    bin\java_coursvl\Java_CoursVL.class
    bin\java_coursvl\Gui.class
    bin\java_coursvl\IGuiListener.class
     
    lib\jawin.jar
    lib\absolutLayout.jar
    lib\sino.jar
     
    meta-inf\MANIFEST.MF
    voici mon manifest.mf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Manifest-Version: 1.0
    Created-By: 1.5.0_02 (Sun Microsystems Inc.)
    Class-Path: bin lib/sinopia.jar lib/absolutLayout.jar lib/jawin.jar
    Main-Class: java_coursvl.Java_coursVL
    Avec un retour de ligne en fin de fichier.

    j'utilise la commande suivante pour générer mon jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jar -cvmf meta-inf/MANIFEST.MF JKheops.jar bin lib
    Il me fait un joli jar avec tous les fichiers ou il faut où il faut. Mais à l'exécution du jar (que ce soit en double cliquant ou en ligne de commande), j'obtiens :
    Exception in thread "main" java.lang.NoClassDefFoundError: java_coursvl/Java_coursVL
    sivouplééé, à force de me taper la tête sur les murs, ya du sang partout, c la boucherie sanzot, j'ai mal , aidez mouaa.

    Merci

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut
    c'est quoi la ligne de commande que tu tapes pour executer ?

  3. #3
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    au choix :
    java -cp "bin;lib" -jar JKheops.jar

    java -jar JKheops.jar

    Ca ne marche pas, toujours le même message.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut
    Et si tu rajoutes en argument le nom de ta classe qui comporte la méthode main ?

    Bon, moi j'ai pas essayé avec un jar, j'ai juste un .class mais je dois faire comme ça :

    Ma classe qui contient la méthode main s'appelle MainClass

    je dois lancer comme ça : java -classpath "c:\dossierjava" MainClass

  5. #5
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    oui c sur qu'en utilisant la méthode habituelle d'appel de la classe, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -cp "bin;lib/jawin.jar;lib/sino.jar;lib/absoluteLayout.jar" java_coursvl.Java_coursVL
    Mais on perd un peu l'intérêt de faire un Jar auto-exécutable dnas ce cas là.

    D'ailleurs une question, dnas le manifest.mf, quelle est "la racine" à partir de laquelle sont fait les chemins d'accès aux libs ?
    Est ce le répertoire courant ou se trouve le manifest.mf dans le jar ?
    Le répertoire courant ou se trouve le jar ?

    Merci pour vos réponses.

  6. #6
    Membre habitué Avatar de Kenji
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 143
    Points
    143
    Par défaut
    Hum,si je me rappelle bien dans mon cas j'avais comme suit pour ton exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar -cvmf meta-inf/MANIFEST.MF JKheops.jar bin/*.class lib
    Mais dans mon cas je n'avais pas de libraire alors peut-être faut-il rajouter lib/*.jar
    Dans mon cas ça marchait en esperant de meme pour toi.

  7. #7
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    bon j'ai fini par trouver le pourquoi du comment.

    les jars dnas les jars ne marchent définitivement pas.
    Il faut donc les décompresser.

    Il semble impossible que la classe principale soit dnas un répertoire (donc dans un package).

    ce qui donne, dans le jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Java_CoursVL.class
    Gui.class
    IGuiListener.class
     
    org\jawin\*.class
    org\netbeans\lib\awtextra\AbsolutLayout.class
    org\netbeans\lib\awtextra\AbsolutLayoutConstraints.class
    sino\kheops\excel\*.class
     
    meta-inf\MANIFEST.MF
    et dans le manifest.mf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Manifest-Version: 1.0
    Created-By: 1.5.0_02 (Sun Microsystems Inc.)
    Main-Class: Java_coursVL

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

Discussions similaires

  1. Encore une histoire de pointeur
    Par Supersami2000 dans le forum C
    Réponses: 5
    Dernier message: 11/07/2008, 14h42
  2. encore une histoire de placement des Jlabel
    Par canary dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/04/2008, 19h04
  3. Encore une histoire pour remplacer les points
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/08/2007, 12h41
  4. Encore une histoire de code source
    Par olivier03 dans le forum Juridique
    Réponses: 15
    Dernier message: 07/06/2007, 11h48
  5. encore une histoire de transparence
    Par mathou810 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 28/09/2006, 14h45

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