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 :

éxécuter un .jar


Sujet :

avec Java

  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut éxécuter un .jar
    Bonjour,

    J'ai fait une application SWING avec quelques librairies et j'aimerai quels marche sous forme d'éxécutable.
    Sa fait longtemps que je cherche comment faire pour, mais je n'ai pas réussi à ce jour à lancer une application sous forme d'éxécutable.
    En effet, j'ai toujours une erreur de ce type qui empêche l'éxécution de mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Exception in thread "main" java.lang.NoClassDefFoundError: src/controlleur/Coiff
    ureFen
    si quelqu'un à une idée ?

    merci

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Tiens, "src" fait partie de ton nom de package, c'est normal ?
    Sinon une NoClassDefFoundError indique un problème de CLASSPATH mal renseigné. Quand tu dis que ton application doit fonctionner "sous forme d'exécutable", tu veux dire jar exécutable ou bien un .exe sous windows par exemple ? Si c'est bien un jar exécutable, n'oublies pas de référencer les librairies externes dans ton fichier MANIFEST.MF ==> http://java.developpez.com/faq/java/?page=execution

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    oui, sous forme de jar executable.
    j'ai toujours la meme erreur meme en mettant:
    controlleur/CoiffureFen
    ou encore en renseignant le chemin sans package:
    Coiffure

    voici mon fichier manifeste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Manifest-Version: 1.0
    Main-Class: src.controlleur.CoiffureFen.class
    Class-Path: .\poi-3.0-rc4-20070503.jar
    En ce qui concerne le tuto, c'est avec celui la que je me suis aidé.
    Et j'ai toujours la meme erreur...

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Pour savoir si tu dois mettre ou non "src", regarde la déclaration "package" de ta classe Java.

    Si c'est "package src.controlleur;" ==> "Main-Class: src.controlleur.CoiffureFen", enlèves le ".class".

  5. #5
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    effectivement je dois mettre src.
    sinon toujours la meme erreur à savoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    could not find the main class. Program will exit.
    pourquoi c'est autant galère de faire fonctionner un .jar...?

  6. #6
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    ... ta méthode "main" à la bonne signature ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void main(String[] args)

  7. #7
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    oui, en effet.
    c'est pourquoi je ne comprend pas cette erreur.

  8. #8
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Vérifie bien toutes les étapes du tuto, y'a forcement quelque chose :
    version de Java, JAR mal construit (absence des .class, manifest non trouvé) ...

  9. #9
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    vu que je n'arrive pas en faisant l'esport .jar sur eclipse, j'ai utilisé un plugin nommé fat jar qui permet de générer un .jar.

    malheureusement encore une fois, bien que j'ai renseigné les librarires et la main-class j'ai toujours la meme erreur.

    fat jar ma aussi générer un fichier nommé .fatjar qui contient ceci:

    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
     
    #Fat Jar Configuration File
    #Tue Apr 29 22:51:13 CEST 2008
    onejar.license.required=false
    manifest.classpath=
    manifest.removesigners=true
    onejar.checkbox=false
    jarname=PTI2-Coiffure_fat.jar
    manifest.mergeall=true
    manifest.mainclass=
    manifest.file=MANIFEST.MF
    jarname.isextern=false
    onejar.expand=
    excludes=
    includes=
    j'ai renseigné les différentes rubriques, puis lancer et en fin de compte la meme erreur encore !

    voici l'erreur d'execution en faisant java -jar monprojet.jar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "main" java.lang.NoClassDefFoundError: src/controlleur/CoiffureFen
    quelqu'un est-il deja tomber sur cette erreur ?

    merci

  10. #10
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    A part si tu peux envoyer le JAR pour qu'on puisse jetter un oeil, je ne sais pas comment t'aider d'avantage.

  11. #11
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    Je ne sais pas si cela peut t'aider mais
    Si tu travaille avec un outil telque Jbuilder ou Eclipse, il faut penser à inclure la main au moment de la creation du JAR

  12. #12
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Oui, je l'ai inclu entre temps et une nouvelle erreur s'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "main" java.lang.NoClassDefFoundError: com/db4o/Db4o
            at controlleur.Fenetre.<init>(Fenetre.java:114)
            at main.CoiffureFen.main(CoiffureFen.java:9)
    Ceci est en faite ma librairie Db4o que j'ai inclu dans le fichier manifeste qui est une base de donnée orientée objet.
    J'ai lu que les jars présentait un problème d'éxecution avec un sgbdr donc je suppose qu'il n'ya pas de remèdes à mon jar pour qu'il s'éxecute normalement avec une base de donnée.

  13. #13
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    J'ai lu que les jars présentait un problème d'éxecution avec un sgbdr donc je suppose qu'il n'ya pas de remèdes à mon jar pour qu'il s'éxecute normalement avec une base de donnée.
    ???
    Il est tout à fait possible de faire un JAR exécutable qui embarque une base de données écrite en Java, comme Derby, JavaDB, PointBase ...
    Si tu utilises fatjar, c'est que tu regroupes tout les fichiers class de ton appli et de tes lib dans un seul jar. Un NoClassDefFoundError signifie que des lib ont dû être oubliées dans la construction du JAR.
    L'autre approche, c'est de laisser les libs dans des JAR séparés, et de les déclarer dans le MANIFEST dans la section Class-Path.

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/06/2008, 03h56
  2. [débutant][jar][Manifest.MF]
    Par Stessy dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 06/08/2003, 19h54
  3. Ajouter un jar ou un package à un autre package
    Par zoulai dans le forum JBuilder
    Réponses: 6
    Dernier message: 30/07/2003, 10h34
  4. [jar executable][Service NT]
    Par paca_mike dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/04/2003, 13h39
  5. creation d un fichier jar ou .exe en java
    Par sadjia dans le forum JBuilder
    Réponses: 13
    Dernier message: 13/12/2002, 16h01

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