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 :

Difficulté pour exécuter une classe


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Difficulté pour exécuter une classe
    Bonjour,

    Je viens de reprendre une application java. Mais impossible de l'exécuter ...

    Voici l'arborescence dans laquelle se trouve le "main" :
    fr/maboite/gateway/AppliMain

    Et la classe "AppliMain" est définie comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package fr.maboite.gateway;
     
    public class AppliMain {
     
         public static void main(String[] args) {
               ...
         }
     
    }

    Sauriez-vous comment exécuter le programme depuis le répertoire qui contient le dossier fr de l'application ???

    Lorsque je tape dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java fr.maboite.gateway.AppliMain
    j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: fr.maboite.gateway.AppliMain.  Program will exit.

    Si vous avez une idée je vous en remercie !!!


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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu dois fournir à la commande java la liste des librairies annexe qu'il dois charger, via le paramètre -cp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp librairie1.jar:librairie2.jar:..... fr.maboite.gateway.AppliMain
    le : est à remplacer par ; si tu es sous windows.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Merci tchize_, j'ai ajouté les lib comme tu m'as dit !

    Mais j'ai encore l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    java.lang.NoClassDefFoundError: fr/maboite/gateway/AppliMain
    Caused by: java.lang.ClassNotFoundException: fr.maboite.gateway.AppliMain
            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: fr.maboite.gateway.AppliMain.  Program will exit.

    On dirait qu'il ne trouve pas "AppliMain" pourtant j'ai bien exécuté avec la commande :
    java -cp librairie1.jar:librairie2.jar:..... fr.maboite.gateway.AppliMain


    Une idée ??


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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as bien remplacé 'librairixxx.jar' par le nom des librairies dont tu as besoin?

    Il ne faut pas oublier (j'aurais du le mentionner) d'ajouter le répertoire courant ( . ) dans la liste des libraries

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp lib/commons-codecs.jar:lib/hibernate.jar:lib/mysql-driver.jar:. monpackage.MonApplication

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Encore merci pour ta réponse !

    J'ai réussi à exécuter mon programme Java. Le problème n'était pas dans ma ligne de commande, ni dans l'inclusion des bibliothèques ... mais dans le fait que Cygwin gère mal certaines choses.

    J'ai lancé la commande java depuis l'émulateur ms-dos (certes peu pratique) et ça marche.

    Tcho !


Discussions similaires

  1. difficultés pour exécuter une formule
    Par benjaminalvarez dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/02/2008, 17h23
  2. methode pour exécuter une class dans un jar
    Par yann_p dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 17h47
  3. [JNI] Difficultés pour utiliser une DLL
    Par etiennegaloup dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 15/08/2005, 21h29
  4. Réponses: 5
    Dernier message: 26/05/2005, 15h40
  5. En difficulté pour faire une requete
    Par Fonzy17 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/03/2005, 10h56

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