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 :

Problème avec jar


Sujet :

Java

  1. #1
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut Problème avec jar
    Bonjour

    Je suis sous OpenSuse 64bits, EDI NetBeans 6.9 (mais je ne pense pas que ce soit lié à l'IDE).
    J'utilises choco-2.1.0-basic+visu.jar.
    Lorsque je travaille avec l'IDE tout fonctionne bien, mais en ligne de commande il refuse d'accepter le jar voilà la première ligne des messages d'erreur
    classes/soma/choco-2.1.0-basic+visu.jar: line 1: PK : commande introuvable
    etc etc
    Quelle est la raison ?

    Merci
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    En plus des messages d'erreurs, pourrait-on avoir la commande que tu as lancée ? Ainsi que la structure de ton projet (organisation des répertoires de librairies) ?
    Cela nous aiderait à déterminer l'origine du problème...
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Merci de t'intéresser à mon problème

    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib -classpath classes/;classes/soma/choco-2.1.0-basic+visu.jar  soma/soma
    Les messages d'erreur (j'ai enlevé tout le rappel des options de la commande java)
    classes/soma/choco-2.1.0-basic+visu.jar: line 1: PK : commande introuvable
    classes/soma/choco-2.1.0-basic+visu.jar: line 2: ’m†: : commande introuvable
    classes/soma/choco-2.1.0-basic+visu.jar: line 3: ‘m†:ŠœœÆ„¡META-INF/MANIFEST.MFEœ: Aucun fichier ou dossier de ce type
    classes/soma/choco-2.1.0-basic+visu.jar: line 19: 1Ç[v5 : commande introuvable
    classes/soma/choco-2.1.0-basic+visu.jar: line 19: Ã : commande introuvable
    classes/soma/choco-2.1.0-basic+visu.jar: line 20: Ml†:2choco/kernel/solver/constraints/global/scheduling/PK: Aucun fichier ou dossier de ce type
    classes/soma/choco-2.1.0-basic+visu.jar: line 21: Ml†:0choco/kernel/solver/constraints/global/matching/PK: Aucun fichier ou dossier de ce type
    classes/soma/choco-2.1.0-basic+visu.jar: line 22: Erreur de syntaxe prÚs du symbole inattendu « choco/kernel/solver/constraints/integer/PK »
    classes/soma/choco-2.1.0-basic+visu.jar: line 22: `Ml†choco/kernel/solver/constraints/integer/PK'

    L'organisation du projet est l'organisation par défaut pour NetBeans 6.9,
    les classes de mon projet se trouvent toutes dans "classes" qui est un répertoire enfant du répertoire d'où je lance la commande et où se trouve aussi choco**.jar

    Je ne pourrais pas te répondre si tu me poses d'autres questions, je pars demain en vacances, et je reviens début aout.

    Salut et merci
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Dans ta ligne de commande, je trouve currieux qu'il y aie à la fois les paramètres -cp et -classpath. Je soupçonne que ton problème de classpath vienne de là (même si j'avoue ne pas avoir essayé). Tu devrais donc tenter de regrouper ces deux paramètres en un seul.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut En effet
    Je penses que l'explication est là. cp n'est autre que la version sous forme de diminutif de classpath. Donc, dans les paramètres, il y a en fait répétition de la déclaration, on peut donc penser que seule la seconde est prise en compte et écrase la précédente. Essayez de n'en utiliser qu'une cp ou classpath et déclarez tous vos chemins en séparant ces derniers du caractère ;
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Comme je le craignais un peu, ça ne marche pas. J'ai toujours les mêmes messages d'erreurs.

    Le problème pourrait-il venir du jar qui est utilisable aussi bien avec 32 que 64 bits ? (je ne sais pas sous quelle architecture il a été créé.

    Merci en tout cas de votre aide
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Peut-être une solution
    le format JAR etant un format de compression de fichier, il respecte un standard qui ne se préoccupe pas de la nature de la plateforme 32 ou 64 Bits. Je ne penses pas que cette différence ait un rapport quelconque avec votre problème.
    Comme le JAR en question est apparament un fichier récupéré, que vous n'avez pas construit vous-même, on peut tout imaginer le concernant.
    Bref, la première chose à faire pour en avoir le coeur nette, serait de le décompresser à la main à l'aide d'un jar -xvf nomFichier.jar.
    Le tout sur une plateforme 64 bits. Si tout se passe bien, je dirai que d'un point de vue structure, le jar est bon.
    En plus, une fois décompressé, vous pourrez nous éditer le fichier manifest, je penses qu'il contient la clé du problème...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  8. #8
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Sous les systèmes "Unix", le point virgule est un séparateur de commande. Grosso modo dans ton cas cela revient à exécuter les deux lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java -cp /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib -classpath classes/
     
    classes/soma/choco-2.1.0-basic+visu.jar  soma/soma
    Il faut utiliser les deux-points comme séparateur de chemin, et non pas le point-virgule qui est utilisé uniquement par Windows...


    En clair sous Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath fichierA.jar;fichierB.jar package.Class
    Sous les autres systèmes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath fichierA.jar:fichierB.jar package.Class
    Au passage on utilise le nom de la classe Java style package.Classe plutôt qu'une struture arborescente package/Classe. C'est moin ambigu (même si ca marche aussi). Et l'on n'a pas besoin de spécifier les librairie de la JVM dans le classpath (je dirais même qu'il ne vaut mieux pas)

    a++

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Bonjour et merci pour vos réponses.
    Ca marche mieux effectivement avec les : plutôt que les ; dans le classpath.
    Mais j'ai une nouvelle erreur, beaucoup plus classique le célèbre "Could not find the main class" :
    Exception in thread "main" java.lang.NoClassDefFoundError: soma/soma
    Caused by: java.lang.ClassNotFoundException: soma.soma
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
    Could not find the main class: soma/soma. Program will exit.
    Ce que je ne comprends pas, (je suis débutant en Java) c'est que je suis reparti de la base en compilant avec javac et tenté d'exécuter avec java avec les mêmes options de classpath :
    Pour compiler :
    javac -cp /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib:.:./choco-2.1.0-basic+visu.jar soma.java DessinSoma.java GetShape.java
    Pour exécuter
    java -cp /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib:.:./choco-2.1.0-basic+visu.jar soma.soma
    La compile se passe sans aucun warning, et l'exécution plante.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tout d'abord, tu devrais renommer soma en Soma. Par convention, la première lettre d'un nom de classe est une majuscule en java.

    Dans le nouveau chargement de ton classpath, n'as tu pas oublié le répertoire "classes" qui contient tes classes compilées ?

    Si celui-ci est bien inclu, les classes sont-elles dans une arborescence physique correspondant à leurs package ? (dans ton cas, un seul niveau de répertoire nommé "soma")

    La classe soma est-elle bien déclarée dans le package soma ?
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Maintenant, tout fonctionne, et je ne sais pas vraiment pourquoi
    Dernier problème mais là c'est un problème machine, mon prog explose la mémoire centrale ! et je crois que je n'y peux rien sauf à prendre une machine avec une véritable architecture 64 bits !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Pour info, tu peux augmenter la memoire max utilisée en passant le parametre "-xmxXXX" à l'execution avec XXX memoire max

    a+

  13. #13
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Oui merci, j'ai essayé en mettant -xmx3528 ou quelque chose comme ça (le max de ma mémoire vive), j'ai 4 Go d'installé mais 3 455 Mo d'utilisable mais ça pète quand même, je pense que la lib CHOCO que j'utilise y est pour quelque chose, je dois l'utiliser au max de ses possibilités.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

Discussions similaires

  1. Problème avec jar de NetBeans
    Par ingtechnologie dans le forum NetBeans
    Réponses: 17
    Dernier message: 31/10/2013, 16h06
  2. problème avec .jar : lire depuis un fichier xml
    Par ALAE4000 dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 28/04/2008, 10h38
  3. Problème avec jar et exe !
    Par Ichigo-BaKa dans le forum Général Java
    Réponses: 17
    Dernier message: 25/06/2007, 17h13
  4. problème avec jar file
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 04/12/2006, 00h40
  5. Problème avec jar
    Par noussa_nouha dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2006, 15h52

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