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

Format d'échange (XML, JSON...) Java Discussion :

problème avec .jar : lire depuis un fichier xml


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut problème avec .jar : lire depuis un fichier xml
    Salut,

    J'ai réalisé une application graphique, qui lit des données depuis un fichier xml, tous marche bien avec : java MonProgramme

    j'ai mis mes .class dans un fichier jar et aussi tous marche bien avec : java -jar MonProgramme.jar

    mais quand je clique sur le fichier .jar il s'execute mais rien ne s'affiche ..

    bon après une petite recherche, j'ai pu lancer le .jar avec le console (en cliquant sur la souris) ... et voila le problème est trouvée :
    dans le terminal s'affiche : java.lang.NullPointerException
    at Donnees.<init>(MonProgramme.java:1131)

    la ligne 1131 de mon programme contient le code suivant :
    racine = document.getRootElement();

    Besoin de votre aide !!

  2. #2
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Avec si peu d'indications je serais tenté de dire que ton application ne trouve pas le chemin du fichier xml..
    C'est un fichier embarqué dans le jar ou un fichier sur le disque ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    il est dans le .jar et aussi dans le dossier ou il y'a le .jar

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    C'est pas parce qu'il est dans le jar qu'il le trouve forcement.

    Il faut qu'il soit present dans le classpath.
    Modifie le fichier MANIFEST du jar pour inclure un chemin ./cfg (par exemple) qui contiendra ton fichier xml.
    Inclut ensuite ce repertoire a la racine dans ton fichier jar ou dans le meme repertoire que ce dernier.

    Sinon assure toi que ton application arrive bien a ouvrir ton fichier .... normalement tu devrais avoir une exception (autre que nullpointer) si le fichier n'existe pas.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Merci,

    franchement je comprend pas pourquoi avec la commande java -jar MonProgramme.jar ça marche bien, et quand je le lance avec la souris ça marche plus....

    Dans la classpath j'ai mis . ( c'est à dire le dossier courant, ou il existe le fichier )
    est ce que l'erreur vient d'ici ?

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Il faut vent faire attention au repertorie courant.
    Selon les systemes et les modes de lancement, le repertoire courrant peut etre celui ou se trouve le lien, celui ou l'on se trouve quand on lance l'application (en mode console) ou tout autre chose ....

    Assure toi que le repertoire courrant est bien celui de ton JAR.

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Je travaille sous linux!

    une petite remarque : quand je lance mon application avec le mode console, le jar lit les données depuis le fichier xml qui existe dans le dossier et pas depuis le fichier qui existe dans le .jar ???

    comment je peut vérifier mon classpath svp ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Voici le contenu de mon fichier MANIFEST.MF

    Main-Class: MonProgramme
    Class-Path: ./MonProgramme.jar:.

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    e npremier j'oterais le fichier jar.
    LE fait de charger un programme depuis un JAR entraine automatiquement l'inclusion de ce dernier dans le classpath (c'est ".")

    Ensuite le format du manifest c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class-Path : archive1.jar archive2.jar archve3.jar
    Supprime donc le ":" et remplace le par un espace

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    je commence a me désespérer, j'ai essayé toutes les possibilités de classpath mais sans résultat..
    pour le moment je vais travailler avec le console "java -jar MonMauvaisProgramme.jar" LOOOL(même si j'aime pas!!)

    Merci bcp pour l'aide

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    quand tu double click sur un jar c'est Javaw qui lance ton jar. Regarde par la

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    je regarde par ou ?

    Mon programme contient System.out.println(); donc il n'est pas purement graphique
    j'ai précisé au mime-type de lancer le .jar avec la commande java -jar ?? donc je crois pas qu'il le lance avec javaw

    quand je tape la commande javaw -jar *.jar
    bash: javaw: command not found

  13. #13
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Si tu tiens absolument à double cliquer pour lancer ton appli, le plus simple serait de mettre dans ta commande de lancement dans un .bat sur windows ou .sh sous linux, et ca ca marchera.

  14. #14
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Si tu tiens absolument à double cliquer pour lancer ton appli, le plus simple serait de mettre dans ta commande de lancement dans un .bat sur windows ou .sh sous linux, et ca ca marchera.
    +1

    C'est le moyen le plus sur de lancer convenablement l'applciation.
    Effectivemetn si tu change le type mime, tu peut le lancer avec java (mais ceci dit on peut pas l'inventer non plus ) mais par defaut c'est bien javaw.

    Ceci dit sous linux je sais pas si javaw existe

    Pour ton probleme "javaw non trouvé" c'est juste que le bin de la jre (ou du jdk) ne fait pas parti de ton JAVA_HOME et de ton PATH. Ou alors que javaw n'existe pas sous linux

    Si l'appel en ligne de commande fonctionne, le mieux est de passert par le fichier bat.

    Une autre solution serait de definir un repertoire de config, inclut dans le classpath system (en dur, genre JAVA_HOME, ANT_HOME ou encore CATALINA_HOME ....) ou bien te baser sur les variable d'envirionnement accessible via la classe Properties pour recuperer le chemin d'acces au "home" de l'utilisateur.

    A partir de ces repertoires, tu peux generer un sous chemin pour acceder a tes ficheirs de config.

    Une solution alternative serait encore de passer en parametre le nom complet du fichier de config, que l'on peut tres bien saisir dans un lien ou dans un fichier batch pour l'automatiser.

    LE GROS probleme de Java reste encore (pour moi) ca gestion des classpath un peu lourde ....

Discussions similaires

  1. Problème avec le parse d'un fichier xml
    Par miled dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 27/04/2011, 19h25
  2. Problème avec saxbuilder.build d'un fichier xml
    Par jad_jad dans le forum Android
    Réponses: 0
    Dernier message: 26/11/2008, 16h47
  3. [XStream] problème avec la désérialisation d'un fichier xml
    Par sidoumghar dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 25/11/2008, 12h23
  4. probléme avec la lecture d'un fichier xml
    Par adel.87 dans le forum Débuter
    Réponses: 13
    Dernier message: 09/10/2008, 13h54
  5. Problème avec la taille d'un fichier xml
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 26/01/2006, 17h11

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