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

Eclipse Java Discussion :

Comportement différent une fois compilé


Sujet :

Eclipse Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut Comportement différent une fois compilé
    Bonsoir,

    j'ai exporté mmon appli en jar et j'ai un truc étrange : alors que lorsque je lance l'appli à partir d'Eclipse après une compilation, tout fonctionne normalement, par contre le comportement du jar est différent (une fenêtre devrait s'ouvrir à un moment, mais elle ne s'ouvre pas).

    J'ai vérifié 15 fois, ré-exporté le jar, essayé sur plusieurs machines, je ne comprends pas.

    Je suis désolé de ne pas être plus précis, je ne vois même pas comment l'être à part en uploadant les sources (c'est un gros projet, pas de moi à la base, que je modifie un peu). Je suppose que j'ai dû oublier quelque chose lors de l'export mais je vois pas quoi...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Peut-être y'a-t-il une façon de lancer le jar (en ligne de commande) de façon à récupérer des massages de Java ?

  3. #3
    Membre habitué Avatar de relivio
    Profil pro
    Inscrit en
    Février 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 157
    Points : 177
    Points
    177
    Par défaut
    Bonjour,

    Je ne vois pas trop, mais je me trompe surement, mais un jar n'est pas exécutable, il s'agit d'une librairie.
    Ce que tu peux faire c'est l'ajouter à ton classpath et faire des appels à ta classe que tu souhaites exécuter.

    Merci de me dire si je me trompe.

    Oliv'

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Ce que je veux dire, c'est que pour l'instant j'exécute un .jar en double-cliquant dessus, ce qui le lance avec le programme lanceur par défaut de Windows qui est soit "Java (2) Standard Platform Edition", soit "javaw.exe", ce qui dans les deux cas provoque le problème mentionné.

    Comme je n'ai pas de sortie standard, je ne peux pas lire d'éventuels messages d'erreurs. Je me demandais s'il n'y avait pas moyen de lancer un jar "en ligne de commande" pour avoir d'éventuels messages.

    Pour préciser un peu mon problème, je joins mon fichier. Lancez-le, cliquez sur Fichier/Exporter/Feuille de travail en tant que image, vous verrez que rien ne se passe, alors que si je lance le même fichier en le compilant, la fenêtre qui devrait s'ouvrir à ce moment-là s'ouvre sans problème.

    Je poste également les sources pour ceux qui veulent tester.

    Lien vers le jar
    Lien vers les sources

  5. #5
    Membre habitué Avatar de relivio
    Profil pro
    Inscrit en
    Février 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 157
    Points : 177
    Points
    177
    Par défaut
    Bonsoir,

    Moi j'ai des erreur mais je pense que cela provient de ma version de java.

    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
    H:\>java -cp "GeoGebra.jar" geogebra.GeoGebra
    Exception in thread "main" java.lang.UnsupportedClassVersionError: geogebra/GeoG
    ebra (Unsupported major.minor version 49.0)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Mais voilà, je ne comprends pas trop, comment ton windows ou ton unix peut se débrouiller pour savoir la classe exécutable de ta librairie.
    Eclipse, je vois il va pomper l'information dans le "MANIFEST.MF".

    Oliv'

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    L'application demarre en ligne de commande, par contre c'est ou que le probleme est cense se produire ?
    Moi tout se lance bien et pas d'exception d'affichee.

    Si tu veux executer ton jar en ligne de commande tu ouvres une ligne de commande windows, tu vas dans le repertoire ou est ton jar et tu tapes:

    Voila,

    Bulbo

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Je précise la classe main au moment de l'export en jar, il l'écrit dans le manifest. Je suppose que javaw lit cette information pour savoir quel est le main, sinon je vois mal comment il se débrouillerait pour lancer le programme.

    De toutes façons, le pb n'est pas là, j'ai déjà oublié de préciser la classe main et le programme ne se lance pas du tout, avec une erreur au départ. Là le programme se lance, c'est après que ça déconne.

    Que signifie exactement "java -cp "GeoGebra.jar" geogebra.GeoGebra" ?

    Edit : croisage de post, je teste ta ligne de commande

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Citation Envoyé par bulbo
    L'application demarre en ligne de commande, par contre c'est ou que le probleme est cense se produire ?
    Quand tu cliques sur Fichier/Export/Exporter dans unfichier image (ou truc du genre)

    Ca provoque l'erreur :

    Exception in thread "Thread-3" java.lang.NoClassDefFoundError: org/freehep/graph
    ics2d/VectorGraphics
    at geogebra.Application.exportGraphic(Application.java:3986)
    at geogebra.Application$39.run(Application.java:3351)
    Je suppose que j'ai dû oublier d'inclure un jar externe (il me semble qu'il y a un freehep.jar dans le projet) quelque part.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Bon désolé encore de demander de l'aide mais je ne vois pas à quel moment préciser ça.

    Pour information : dans le package explorer apparait bien un fichier freehep.jar, lequel contient effectivement une classe nommée org/freehep/graphics2d/VectorGraphics.

    Par contre, je ne la vois pas dans le fichier jar. Et je ne vois pas où, dans les différents choix lors de l'export en jar, je dois préciser de l'incorporer.

    Je vais voir dans la Faq si je trouve quelque chose là-dessus, mais si vous pouvez m'aider, c'est pas d'refus

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    J'ai trouvé unpost dans ce forum avec le même problème qui préconise d'utiliser FatJar, ce que j'ai fait et ça marche !

    Par contre, je n'ai rien vu dans la FAQ. Ce serait peut-être biend e le rajouter, vu que c'est une question qui a l'air de pas mal tourner !

    Merci de votre aide en tout cas !

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

Discussions similaires

  1. une fois compilé, os.system ne fonctionne pas alors qu'en .py il marche
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 7
    Dernier message: 18/09/2010, 18h22
  2. Impossible d'exécuter un code une fois compilé
    Par Adeel.dev dans le forum x86 16-bits
    Réponses: 12
    Dernier message: 24/05/2010, 11h55
  3. Réponses: 12
    Dernier message: 01/03/2007, 11h28
  4. Réponses: 15
    Dernier message: 19/06/2006, 19h25
  5. Comportement différent entre un bouton et une image
    Par MicheMTP13 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/11/2005, 08h47

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