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

avec Java Discussion :

Créer un .jar


Sujet :

avec Java

  1. #1
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut Créer un .jar
    Bonjour à tous,

    Je voudrais créer un .jar (je developpe sous Eclipse).
    J'ai quelques librairies exterieures, je les ai mise dans un repertoire "lib" sous ma racine et les ai importé dans mon arbre dans Eclipse.
    J'ai créé un manifest pour les appeler.
    Lorsque je passe par export, à la 3 ieme page, j'ai bien la classe du main qui est proposé.
    J'arrive bien à créer mon .jar
    Mais lorsque je lance la commande depuis DOS, voici ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Exception in thread "main" java.lang.NoClassDefFoundError: org/dyno/visual/swing
    /layouts/Alignment
    Caused by: java.lang.ClassNotFoundException: org.dyno.visual.swing.layouts.Align
    ment
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
    Could not find the main class: SimulProgIHM.initialize. Program will exit.
    Je ne sais plus quoi faire.
    Auriez-vous une idée ?

  2. #2
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Il faut ajouter toutes les dépendance de ton projet au classpath lorsque tu lance la commande "java -jar ..."
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  3. #3
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    Oui, je les ai.
    Visiblement j'avais un problème avec l'install du JDK
    J'avais pas le bon chemin dans ma variable environnement : http://www.objis.com/formation-java/...ion-jdk-6.html

    Mais maintenant j'ai les classes du grouplayout.jar qui ne sont pas reconnuent alors qu'elles sont bien dans le ClassPah
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path="src"/>
    	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    	<classpathentry exported="true" kind="lib" path="C:/Eclipse/workspace/Plus/gnu.io.rxtx.sdk_2.1.7.4_v20071016-417C7DP1Bh_eEaQJBrHBHg.jar"/>
    	<classpathentry exported="true" kind="lib" path="C:/Eclipse/workspace/Plus/gnu.io.rxtx_2.1.7.4_v20071016-7B57e7UAXMAAqGAGf.jar"/>
    	<classpathentry exported="true" kind="lib" path="C:/Program Files/Eclipse/plugins/org.eclipse.swt-3.6.1-win32-win32-x86/swt.jar"/>
    	<classpathentry exported="true" kind="con" path="DERBY_CONTAINER"/>
    	<classpathentry exported="true" kind="con" path="org.dyno.visual.swing.VS_LIBRARY/layoutext"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>
    ,
    dans le manifest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: SimulProgIHM.initialize
    Class-Path: lib/gnu.io.rxtx.sdk_2.1.7.4_v20071016-417C7DP1Bh_eEaQJBrHBHg.jar lib/gnu.io.rxtx_2.1.7.4_v20071016-7B57e7UAXMAAqGAGf.jar lib/swt.jar lib/derby.jar lib/derbyclient.jar lib/derbynet.jar lib/derbytools.jar lib/grouplayout.jar lib/resources.jar lib/rt.jar lib/jsse.jar lib/jce.jar lib/charsets.jar lib/dnsns.jar lib/localedata.jar lib/sunjce_provider.jar lib/sunmscapi.jar lib/sunpkcs11.jar
    et dans mon .jar (sous repertoire "lib") et dans Eclipse aucune erreur n'est trouvée ....

    Une idée de ce que je peux faire ?

  4. #4
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Je ne vois pas dans le classpath de ton jar de dépendance vers "org.dyno.blablabla"
    Et bizarrement c'est ces classes qu'il ne trouve pas...
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  5. #5
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    Quand je regarde le chemin dans mon arbre, c'est dans mon projet
    "C:\Eclipse\workspace\.metadata\.plugins\org.dyno.visual.swing\layoutext\grouplayout.jar"
    et non pas dans le program file, mais il pointe sur le meme fichier que la ligne
    path="org.dyno.visual.swing.VS_LIBRARY/layoutext"
    du classpath...

    C'est bon ou pas ?

  6. #6
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Oui ca doit etre le bon jar.
    Par contre une chose a laquelles je n'avais pas fait attention. C'est que dans ton fichier MANIFEST, les entrées que tu as pour le classpath ne sont pas recherché a l'intérieur du jar. La racine de recherche correspond au répertoire dans lequel se trouve ton jar.
    Il faut donc que ton répertoire "lib" se trouve a coté de ton jar (et pas à l'intérieur)
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  7. #7
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    J'ai mon .jar la :
    C:\Essai\SimulProg\SimulProg.jar
    J'ai mes .jar externes la :
    C:\Essai\SimulProg\lib\

    et j'utilise ces commandes DOS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CD C:\Essai\SimulProg\
    java -jar SimulProg.jar initialize
    ca n'est pas bon ?

  8. #8
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Avec ce que tu as dans ton manifest tu peux lancer ton appli comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar SimulProg.jar
    Cependant, ca ne doit pas changer grand chose.

    D'après les infos que tu donne, je ne comprend pas pourquoi ca ne marche pas.
    Tu peux également essayer de lancer ton appli en précisant explicitement le classpath (avec l'option -classpath).
    Si ca ne marche toujours pas c'est que la classe recherché n'existe pas dans les lib fournis.
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  9. #9
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Ton MANIFEST contient-il une ligne vide à la fin du fichier?

  10. #10
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    J'ai testé ceci :
    CD CD C:\Essai\SimulProg\
    java -classpath SimulProg.jar;gnu.io.rxtx.sdk_2.1.7.4_v20071016-417C7DP1Bh_eEaQJBrHBHg.jar;gnu.io.rxtx_2.1.7.4_v20071016-7B57e7UAXMAAqGAGf.jar;swt.jar;derby.jar;derbyclient.jar;derbynet.jar;derbytools.jar;grouplayout.jar;resources.jar;rt.jar;jsse.jar;jce.jar;charsets.jar;dnsns.jar;localedata.jar;sunjce_provider.jar;sunmscapi.jar;sunpkcs11.jar SimulProg.SimulProgIHM.initialize
    mais il me fait une erreur : il me demande les class perso que j'ai créé :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    initialize.java:25: cannot find symbol
    symbol  : class progScenario
    location: package SimulProgIHM
    import SimulProgIHM.progScenario;
                       ^
    initialize.java:26: cannot find symbol
    symbol  : class progSimulation
    location: package SimulProgIHM
    import SimulProgIHM.progSimulation;
                       ^
    initialize.java:27: cannot find symbol
    symbol  : class accueil
    location: package SimulProgIHM
    import SimulProgIHM.accueil;
                       ^
    initialize.java:65: cannot find symbol
    symbol  : class accueil
    location: class SimulProgIHM.initialize
                            accueil Ac = new accueil() ;
                            ^
    initialize.java:65: cannot find symbol
    symbol  : class accueil
    location: class SimulProgIHM.initialize
                            accueil Ac = new accueil() ;
                                             ^
    initialize.java:90: cannot find symbol
    symbol  : class progSimulation
    location: class SimulProgIHM.initialize
                            progSimulation Simul = new progSimulation() ;
                            ^
    initialize.java:90: cannot find symbol
    symbol  : class progSimulation
    location: class SimulProgIHM.initialize
                            progSimulation Simul = new progSimulation() ;
                                                       ^
    initialize.java:115: cannot find symbol
    symbol  : class progScenario
    location: class SimulProgIHM.initialize
                            progScenario Scen = new progScenario() ;
                            ^
    initialize.java:115: cannot find symbol
    symbol  : class progScenario
    location: class SimulProgIHM.initialize
                            progScenario Scen = new progScenario() ;
                                                    ^
    initialize.java:121: cannot find symbol
    symbol  : class DrawLine
    location: class SimulProgIHM.initialize
                            jPanel2.add( new DrawLine(), new Constraints(new Leading
    (0, 10, 10), new Leading(80, 12, 12)) );
                                             ^
    10 errors
    mais je vois pas comment je peux lui fournir vu que mes class sont dans le .jar ou encore en .java

    Je vois pas ce qui cloche....
    Je crois que je vais carrement recré mon appli a ce rythme ...

    C'est C** ca marche nikel dans Eclipse...

  11. #11
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    Ton MANIFEST contient-il une ligne vide à la fin du fichier?
    Oui, oui, il y a bien une ou 2 lignes vierge.

  12. #12
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Peut être que ton ClassPath est trop long...

    Essaye avec ça... peut être... sinon je vois pas tout me parait correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Manifest-Version: 1.0
    Main-Class: SimulProgIHM.initialize
    Class-Path: lib/gnu.io.rxtx.sdk_2.1.7.4_v20071016-417C7DP1Bh_eEaQJBrHBHg.jar lib/gnu.io.rxtx_2.1.7.4_v20071016-7B57e7UAXMAAqGAGf.jar 
     lib/swt.jar lib/derby.jar lib/derbyclient.jar lib/derbynet.jar lib/derbytools.jar lib/grouplayout.jar lib/resources.jar 
     lib/rt.jar lib/jsse.jar lib/jce.jar lib/charsets.jar lib/dnsns.jar lib/localedata.jar 
     lib/sunjce_provider.jar lib/sunmscapi.jar lib/sunpkcs11.jar

  13. #13
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    Je viens d'essayer, c'est pas mieux....

    J'ai testé un truc :
    dans l'arbre dans Eclipse j'ai créé les sous repertoires "org\dyno\visual\swing\layouts" et mis les classes de mon layout dans ce dernier, la où il me disait lorsque je lancais la commande DOS qu'il y avait une erreur sur la class du layout, il ne me dit plus rien, il ne mentionne plus d'erreur mais ne me lance pas pour autant mon appli ....
    Cela veut il dire quelque chose ?
    Que faire ?

  14. #14
    Membre confirmé Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Points : 631
    Points
    631
    Par défaut
    Salut!!!
    Tu pourras l'exporter en utilisant le fat jar ...
    http://sourceforge.net/projects/fjep/
    On essaie
    et ça marchera

    Mon site
    Ma page

  15. #15
    Membre du Club
    Femme Profil pro
    Developpeur
    Inscrit en
    Février 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 101
    Points : 68
    Points
    68
    Par défaut
    En rajoutant le nom de mon projet dans les chemins des .jar (monprojet/lib/derby.jar), ca marche mieux, ainsi qu'en important les .class et les structure hierarchique dans l'arbre...
    C'est normal ?

Discussions similaires

  1. créer un jar exécutable avec option
    Par _Eric_ dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2006, 17h09
  2. [Maven2] Créer un jar à partir des sources
    Par Sniper37 dans le forum Maven
    Réponses: 3
    Dernier message: 25/08/2006, 14h36
  3. Créer un jar avec des librairies externes
    Par bart64 dans le forum Langage
    Réponses: 4
    Dernier message: 28/07/2006, 05h37
  4. comment créer un JAR sous eclipse V3.0
    Par LESOLEIL dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 21/03/2006, 10h53
  5. [JAR] comment créer un jar executable?
    Par david06600 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/02/2006, 19h32

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