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 :

Jar executable et répertoire courant


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut Jar executable et répertoire courant
    Hello,

    Voilà je souhaite déployer une application java sous forme d'un .jar executable. Le dossier contenant l'appli se présente de la manière suivante:
    projet/projet.jar -> Le jar executable
    projet/lib/*.jar -> les .jar externes utilisés par l'appli
    projet/icons/*.png -> Les icones
    projet/sql/*.sql -> Des fichiers utilisées pour la partie BD de l'appli
    projet/xml/*.xml -> Des fichiers de config
    projet/src/* -> Les sources J'ai développé le projet sous netbeans.
    projet/manual/* -> La doc
    J'ai développé ce projet sous netbeans, qui m'a généré un .jar executable dans le dossier /dist. J'ai donc déplacé le .jar dans le dossier /projet pour que l'utilisateur y ait accès directement.

    Problème: lorsque je double clique sur le .jar pour le lancer, l'application se lance correctement et semble fonctionner, en partie du moins car elle ne trouve pas mes icônes, ni mes fichiers de config sql/xml etc... (alors qu'il semble trouver sans problèmes les librairies).

    Bref, j'ai affiché dans la fenêtre le répertoire courant (sachant que j'ai lancé le .jar du répertoire /home/moi/projets/p1) avec System.getProperty("user.dir") et il me dit que le répertoire courant est /home/moi

    Bref, quelque chose m'échappe dans tout ça, quelqu'un peut -il m'éclairer?

    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Comment as tu lancé le jar ? en double cliquant dessus ? En ligne de commande ? SI oui peux tu nous la donner ?
    EDIT : pardon j'avais mal lu. Quand on double clique sur le jar il met le homedir comme répertoire courant car il associe un nouveau shell à l'appli et par défaut tu es dans le répertoire de l'utilisateur.
    Personnellement je fais toujours un script qui lance le jar et j'exécute ce script, ca permet d'avoir plus de contrôle

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut
    Oui c'est bien ce que je pensais... C'est pas très pratique tout de même :S créer un script reviens à en créer plusieurs, un pour chaque OS, on perd un peu en portabilité même si l'effort n'est pas énorme.

    Aucun moyen de changer ca? Ou bien de récupérer le répertoire de mon projet d'une autre manière ?

    Car ca handicape quand même pas mal mon histoire si l'utilisateur ne peut pas double cliquer sur son jar...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ben il double clic sur le script il y a pas grande différence
    Non sinon tu peux avoir le chemin vers ton jar, genre regarde ici : http://stackoverflow.com/questions/3...nning-jar-file

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Par défaut
    certes pas grand différence, je voulais juste éviter d'avoir un script de lancement par OS... Faire une release pour tout OS en gros: un .jar pour tous et basta.

    Notez que sous windows le problème ne semble pas se poser... Merci en tout cas je vais voir ca

    Je me demandai aussi au passage: est-ce qu'il y a moyen d'inclure directement dans le jar les divers dossiers ? (lib/ icons/ xml/ ...)

    Ca doit être faisable, mais j'ai rien trouvé avec netbeans pour le moment...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu peux bien sûr tout inclure dans le jar mais il y a des limites :
    • tu ne pourras pas utiliser des jar inclus dans u jar sans implémenter une classloader fait maison ou un outil genre flatjar
    • les fichiers de configuration inclus dans le jar ne peuvent pas être modifiés/personnalisés par l'utilisateur aussi facilement

    Bon courage

Discussions similaires

  1. [JAR / Linux] Problème de répertoire courant
    Par Nanawel dans le forum Langage
    Réponses: 8
    Dernier message: 01/07/2007, 17h24
  2. Executable et répertoire courant.
    Par Pierre8r dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/11/2006, 15h24
  3. [JSP] Récupérer le répertoire courant
    Par dafly dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 10/06/2004, 11h01
  4. répertoire courant ".\"
    Par tut dans le forum MFC
    Réponses: 2
    Dernier message: 10/03/2004, 09h57
  5. [jar executable][Service NT]
    Par paca_mike dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/04/2003, 13h39

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