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

Langage Java Discussion :

probleme pour lancer un jar en ligne de commande


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut probleme pour lancer un jar en ligne de commande
    bonjour;

    j'ai fais un .jar et quand je veux le lancer en ligne de commande je fais:

    java -jar monAppli.jar

    Il me dit alors:

    -jar : illegal argument

    puis m'affiche les options du 'java' où ne figure pas '-jar'

    A noter que la commande java et reconnue et javac aussi.

    Sauriez vous d'où peut venir le probleme?

    PS : a noter que j'ai également essayé de générer le jar avec eclipse en donnant la main class, mais quand je double clic sur le jar. Il me dit :
    Could not find the main class
    Alors qu'un Jar généré par eclipse...y'a peu de chance qu'il soit défaillant. J'ai vérifié le manifest

  2. #2
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    ok en faisant javaw a la place de java. ça "lance" le jar.

    ceci dit il trouve toujours pas la classe a lancer...

    Sinon , j'ai 3 classes avec un main dans mon jar. si je veux lancer 1 class précise c'est bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javaw -jar mon.jar mespackages.MaGUI
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javaw -jar mon.jar mespackages.MaGUI2
    qui faut faire?

  3. #3
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par progamer54 Voir le message
    bonjour;

    j'ai fais un .jar et quand je veux le lancer en ligne de commande je fais:

    java -jar monAppli.jar

    Il me dit alors:

    -jar : illegal argument

    puis m'affiche les options du 'java' où ne figure pas '-jar'

    A noter que la commande java et reconnue et javac aussi.

    Sauriez vous d'où peut venir le probleme?

    PS : a noter que j'ai également essayé de générer le jar avec eclipse en donnant la main class, mais quand je double clic sur le jar. Il me dit :
    Could not find the main class
    Alors qu'un Jar généré par eclipse...y'a peu de chance qu'il soit défaillant. J'ai vérifié le manifest

    C'est quoi c'te version de java que t'as installé?

    Non parce que c'est pas normal que l'option -jar n'y soit pas.

    Essaie de faire un java -version pour voir.

  4. #4
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    effectivement c'est la 1.1.8.16.
    pourtant javais bien mis ma JAVA_HOME (C:\Program Files\Java\jdk1.5.0_12)
    dans le ClassPath dans les variables d'environnement.

    faut donc que je regarde mes variables d'environnement car ça doit être là qu'est le problème, car java -jar devrait fonctionner...

  5. #5
    Membre régulier

    Profil pro
    Enseignant
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 99
    Points
    99
    Par défaut
    Salut,

    Veuillez ouvrir votre jar en utilisant un decompresseur tel que winrar, verifiez le fichier manifest dans le repertoire Meta-inf.

    Verifiez la ligne: Main-Class: maClass

    tel que maClass contient le main()

    Si cette ligne n'existe pas ajoutez la!

    Le fichier doit se terminer par un saut de ligne!

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par progamer54 Voir le message
    effectivement c'est la 1.1.8.16.
    pourtant javais bien mis ma JAVA_HOME (C:\Program Files\Java\jdk1.5.0_12)
    dans le ClassPath dans les variables d'environnement.

    faut donc que je regarde mes variables d'environnement car ça doit être là qu'est le problème, car java -jar devrait fonctionner...
    Vérifie la variable PATH, dégages-y tout ce qui concerne java 1.1.8.16 et ajoutes %JAVA_HOME%\bin.

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Citation Envoyé par progamer54 Voir le message
    effectivement c'est la 1.1.8.16.
    pourtant javais bien mis ma JAVA_HOME (C:\Program Files\Java\jdk1.5.0_12)
    dans le ClassPath dans les variables d'environnement.

    faut donc que je regarde mes variables d'environnement car ça doit être là qu'est le problème, car java -jar devrait fonctionner...
    Effectivement, avec Java 1.1, ça risque pas de se passer bien.

    Ce qu'il faut corriger c'est la variable d'environnement path, parceque c'est là que Windows va piocher pour trouver java.exe. Enlèves la référence à ton java 1.1 et remplaces le par celui de java 5 (le dossier bin).

    Bonne chance.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    Par défaut ça doit être le java.exe fourni avec windows...

    Dans le doute tu peux toujours faire :

    %JAVA_HOME%\bin\java -jar nanana...

    Au moins tu es sûr de ne pas te louper !

  9. #9
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    C'est bon en virant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\oracle\dev6i\jdk\bin
    du PATH.


    maintenant j'ai une toute autre erreur. Il semble qu'il ne récupère pas les lib extérieures car j'ai :
    NoClassDefFoundError : org/springframework/context/ApplicationContext

    dans mon manifest j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Manifest-Version: 1.0
    Created-By: BIBI
    Main-Class: packages.MaGui
    Class-Path: ../lib/*.jar ../properties/*.*
    Mon arborescence est:
    -----------------------------------
    -start.bat

    -bin/
    ---maJar.jar

    -lib/
    ---toutes mes lib

    -properties/
    ---les fichiers de config.
    -----------------------------------
    et dans le start.bat je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -jar bin/maJar.jar packages.MaGui
    le classpath du manifest est faux? je dois rajouter un truc dans l'appel se trouvant le start.bat?

  10. #10
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    C'est bon en ajoutant chaque jar dans le classpath du manifest.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Class-Path: ../properties/ ../lib/spring.jar ../lib/spring-beans.jar ../lib/log4j-1.2.14.jar ../lib/mail-1.3.2.jar ../lib/spring-jdbc.jar    ETC.
    Le dernier probleme que j'ai est le suivant:
    Comment lancer la class (de ma jar) que je souhaite. Je rappelle que je suis dans la situation suivante: j'ai 3 classes avec un main :
    packages.maGui
    packages.maGui2
    packages.maGui3

    dans le manifest j'ai main-class= packages.maGui
    pour en avoir une par défaut...
    mais qd je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -jar bin/maJar.jar  packages.maGui3
    il lance qd meme packages.maGui

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    L'attribut Main-Class du manifest ne détermine pas la classe par défaut, mais la classe principale dans tous les cas ! Et dans ton cas le nom de la classe est en fait passé en paramètre à ton programme...


    Si tu veux vraiment avoir plusieurs classes d'entrées tu devras le gérer à la main via la reflection, par exemple :

    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
    	public static void main(String[] args) throws Exception {
    		final String mainClass;
    		if (args.length>0) {
    			mainClass = args[0];
    		} else {
    			mainClass = "main.CCC";
    		}
     
    		// On charge la classe principale :
    		Class<?> clazz = Class.forName(mainClass);
     
    		// On récupère la méthode main() :
    		Method main = clazz.getMethod("main", String[].class);
     
    		// Et on l'invoke :
    		main.invoke(null, (Object)args);
    	}
    a++

  12. #12
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    OK bon ben j'ai fais la chose suivante dans mes .bat:

    java -cp maJar.jar maclass

    au lieu de :

    java -jar maJar maclass.

    maintenant TOUT ROULE.

    merci pour votre aide.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2011, 13h51
  2. Réponses: 4
    Dernier message: 18/08/2009, 21h29
  3. [debutant] probleme pour lancer sql
    Par tomsoyer dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/08/2004, 19h29
  4. Réponses: 2
    Dernier message: 22/04/2004, 14h28
  5. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 10h39

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