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 :

Accès à un fichier dans un jar


Sujet :

Langage Java

  1. #1
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut Accès à un fichier dans un jar
    Hello,

    J'ai fait un programme (Eclipse, linux) qui execute une commande (shell). Cela fonctionne très bien tant que c'est pas dans un JAR:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Shell sh = new Shell();
    String res = "";
    try {
      // Execute the command
      res = sh.command("./plugins/check_disk -c ...").consumeAsString();
    }catch...
    Shell est un package trouvé sur un bon site... Ah ben celui-ci. Il permet d'executer des commandes Linux!

    Seulement, mon problème: Je met tout ça dans un JAR, y compris le dossier plugins qui contient les executables que j'appel en ligne de commande... Mais il ne les trouve pas, c'est normal, il cherche au niveau du projet et non dans le JAR...

    Donc, pour l'instant, j'ai copié le dossier plugins au même niveau que le JAR, et comme ça c'est bon! Mais comment faire pour pouvoir l'inclure dans le JAR??

    Merci d'avance!

    A+

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 120
    Points
    120
    Par défaut
    As tu crer un manifest correcte en creant le jar. C'est a dire en diant que tu avez des jar externes.

    Donc, pour l'instant, j'ai copié le dossier plugins au même niveau que le JAR, et comme ça c'est bon! Mais comment faire pour pouvoir l'inclure dans le JAR??
    PS. Tu ne peux mettre un jar dans un jar

  3. #3
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    Non, j'ai du mal m'exprimer...

    Je n'ai aps de jar dans le jar... C'est un dossier, des fichiers quoi...
    Un dossier "plugins" dans mon jar principal. Donc un seul JAR, mais qui contient une classe JAVA qui accède à des fichiers internes à ce JAR..

    C'est plus clair?

    A+ et merci

  4. #4
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Pour exécuter une archive java, il faut utiliser la commande suivante « java [options] –jar archive_java.jar [classe_principale] ». Pour les versions 1.1 et antérieures de la machine virtuelle, il faut utiliser la commande « jre archive_java archive_java.jar classe_principale ». Pour les version 1.2 et supérieures de la machine virtuelle, si l’archive java intègre un manifeste précisant la classe principale à exécuter, il n’est pas besoin de préciser celle-ci.
    Le manifeste comporte un renseignement par ligne. Chaque ligne est constituée du type de renseignement et de sa valeur, le tout séparé par le caractère « : ». Chaque ligne, pour être valide, doit obligatoirement se terminer par un caractère de retour à la ligne, attention donc à ajouter ce caractère à la fin de la dernière ligne du fichier.
    • Voici la liste de quelques renseignements que l’on peut inclure au manifeste (avec des valeurs d’exemples) :
    • Manifest-Version: 1.0 (le manifeste est conforme aux spécifications 1.0 sur la rédaction des manifestes)
    • Main-Class: classname (à partir de la version 1.2 du manifeste, spécifie le nom de la classe à executer lors du lancement de l’archive).
    • Implementation-Title : "titre du package"
    • Implementation-Version : "n° de version "
    • Implementation-Vendor : "organisation vendant le produit"
    • Specification-Title : "titre de la spécification"
    • Specification-Version : "n° de version "
    • Specification-Vendor : "organisation vendant le produit"

  5. #5
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    J'ai du mal à cerner les renseignements utiles pour moi, désolé

    Je vais essayer de résumer ma question. Quel est le chemin relatif à utiliser dans un fichier java pour accéder à un fichier qui se trouve dans le même jar que lui?

    A+

  6. #6
    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,


    Tu ne peux pas exécuter une commande d'un script à l'intérieur d'un jar.
    En effet le script est lancé par le shell système et il ne prend pas en compte les archive (pas à ma connaissance en tout cas) : le script doit être présent directement dans le système de fichier.


    La meilleure solution dans ton cas serait d'extraire ce fichier dans un dossier temporaire et de l'exécuter depuis cet emplacement.

    a++

Discussions similaires

  1. Acces fichier dans un JAr
    Par Katachana dans le forum Langage
    Réponses: 1
    Dernier message: 16/07/2007, 11h31
  2. [JAR]Modification de fichier dans un jar
    Par vberetti dans le forum Général Java
    Réponses: 14
    Dernier message: 13/06/2005, 17h56
  3. [JAR] lire un fichier dans un jar OU hors d'un jar
    Par yveslamand dans le forum Général Java
    Réponses: 13
    Dernier message: 25/04/2005, 14h38
  4. Chemin d'accès des fichiers dans des sous rep
    Par Le Veilleur dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/11/2004, 14h37
  5. [JAR] Accéder à un fichier dans un jar
    Par Nanoua dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 06/07/2004, 13h00

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