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] Impossible d'executer un JAR ?


Sujet :

Java

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut [JAR] Impossible d'executer un JAR ?
    Bonjour,

    Dans un projet sous eclipse je développe une application Swing et quand j'execute la classe principale, via bouton droit > run > Java Application , pas de pb mon application s'execute bien.

    Par contre dès que j'exporte sous forme de JAR executable en indiquant cette meme classe comme main class, le jar généré me donne l'erreur suivante dans une message box :


    Java Virtual Machine Launcher
    Could not find the main class. Program will exit.
    Qu'ai je oublié de faire ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    En cherchant plus loin j'ai ce complément d'erreur :

    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
    at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
    at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.defineClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.access$100(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at com.xxx.framework.conf.Environnement.<clinit>(Environnement.java:24)
    Et la ligne dans le code est :

    // Gestion des traces
    private static TraceLogger logger = (TraceLogger) TraceLogger.getLogger(Environnement.class);

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut,
    Je dirais que soit tu n'as pas precise que log4j.jar devait etre dans le classpath, soit tu ne l'as pas fourni avec ton programme.jar.

    Peux tu nous montrer ton Manifest ?
    sylvain_2020

  4. #4
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    j'ai la même analyse que sylvain.
    il te manque une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class-Path: cheminVersMonJar
    dans ton Manifest.
    Nota : le manifest se trouve dans ton jar (format de compression zip) dans le rep META-INF.

  5. #5
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Mon manifest ressemble à ça :

    Manifest-Version: 1.0
    Main-Class: com.xxx.ihm.Application
    Class-Path: log4j-1.2.8.jar
    J'ai donc bien le JAR pour le logger, mais est ce le bon chemin ?

    Quand j'extrais les fichiers de mon JAR application le fichier log4j-1.2.8.jar est à la racine.

    Des idées ?

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    vu ton manifest, le fichier log4j-1.2.8.jar doit être (je pense) :
    - en dehors du jar de ton appli
    - dans le même rep que le jar de ton appli

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Il est contenu dans le jar executable.

    Comment faire pointer vers ce jar ?

  8. #8
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    tu fais le jar de ton appli sans y inclure le jar de log4j.
    tu vérifies que le manifest possède bien la ligne : Class-Path: log4j-1.2.8.jar
    tu mets le jar de log4j à côté de celui de ton appli.
    logiquement ça devrait fonctionner.

  9. #9
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    La ligne Class-Path: log4j-1.2.8.jar dans le Manifest est obligatoire ?

  10. #10
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut,
    Citation Envoyé par elitost
    La ligne Class-Path: log4j-1.2.8.jar dans le Manifest est obligatoire ?
    Oui elle est obligatoire ! Et comme disait pimousse76, il faut que tu aies tonJarExecutable.jar et log4j-1.2.8.jar dans le meme repertoire.
    sylvain_2020

  11. #11
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Ok, ça marche maintenant...

    Par contre cette application qui fonctionne sous eclipse, en jar executable , ne fonctionne pas quand je l'utilise via java web start...

    Faut il aussi avoir un fichier JNLP spécifique ?

  12. #12
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Citation Envoyé par elitost
    Ok, ça marche maintenant...

    Par contre cette application qui fonctionne sous eclipse, en jar executable , ne fonctionne pas quand je l'utilise via java web start...

    Faut il aussi avoir un fichier JNLP spécifique ?
    Oui, tu dois preciser les ressources dans le JNLP.
    Dans ton cas, tu auras par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       <resources>
          <j2se version="1.4+"/>
          <jar href="tonProg.jar" />
          <jar href="log4j-1.2.8.jar" />
       </resources>
    sylvain_2020

  13. #13
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    OK, c'est noté, est bien sûr je me suis heurté au dernier pb, qui est de signer tous les jar utilisés.

    Je vous remercie bien.

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

Discussions similaires

  1. [debutante][JAR] Impossible d'exécuter mon jar
    Par alison239 dans le forum Général Java
    Réponses: 2
    Dernier message: 20/02/2006, 20h15
  2. [JAR] probleme d'exec de JAR faisant appel à un autre JAR
    Par guis14 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/01/2006, 09h19
  3. [jar][débutant] Impossible d'executer un jar
    Par dacid dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/12/2005, 21h10
  4. [JAR]probleme d'execution
    Par Sarrus dans le forum Général Java
    Réponses: 8
    Dernier message: 08/07/2005, 09h19
  5. [Jar]liste ressources d'un jar pendant execution
    Par maxidoove dans le forum Général Java
    Réponses: 4
    Dernier message: 10/05/2004, 17h36

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