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 :

Lister les fichiers d'un JAR


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut Lister les fichiers d'un JAR
    Bonjour,

    j'ai besoin de lister des fichiers d'un JAR depuis l'application exécutée par ce même JAR.

    En fait, j'ai besoin de lister tous les sous-répertoires d'un package X contenu dans mon JAR, et ceci récursivement (afin de récupérer tous les sous-packages d'un certain package qui est à la racine de mon projet, donc de mon JAR).

    J'ai déjà codé une version qui fonctionne sous Eclipse.
    Mais en passant à un JAR exécutable, ça plante puisque j'ai utilisé des simples File et chemins en String.

    Comment faire pour que cela fonctionne quand l'exécution se fait depuis le JAR et qu'il faut "tapper" dans le JAR ?

    Merci d'avance pour votre aide.

  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
    Si le jar à explorer est situé dans ton classPath, tu peux utiliser la réflexivité de java pour regarder ce qu'il contient

    Sinon, si tu le considères comme un simple fichier, tu peux:
    - soit le décompresser (un jar n'est jamais qu'un zip renommé )
    - soit l'ajouter dynamiquement au classPath via un classLoader pour utiliser la réflexivité ensuite
    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
    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,

    Citation Envoyé par Yannick_from_31 Voir le message
    (afin de récupérer tous les sous-packages d'un certain package qui est à la racine de mon projet, donc de mon JAR).
    juste par curiosité : pourquoi as-tu besoin de faire ceci ?

    Sinon il va falloir se tourner vers la classe JarFile...

    a++

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Pour le décompresser, il faut passer par JarFile si je comprend bien ?

    Mais j'ai peur qu'il y ai un souci d'accès au jar puisque je vais devoir décompresser le JAR X depuis l'exécution du JAR X !

    Je vais voir pour ce soucis, et au pire je rajoute le package à scruter en tant que librairie JAR externe.

    adiGuba : j'ai besoin de faire ceci pour générer des imports lors de la génération de code Java (si j'avais su que c'était si compliqué de faire un pseudo générateur de code ).

  5. #5
    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
    Citation Envoyé par Yannick_from_31 Voir le message
    Mais j'ai peur qu'il y ai un souci d'accès au jar puisque je vais devoir décompresser le JAR X depuis l'exécution du JAR X !
    Tant que tu ne tentes pas de modifier le contenu du jar il ne devrait pas y avoir de problème...


    Citation Envoyé par Yannick_from_31 Voir le message
    adiGuba : j'ai besoin de faire ceci pour générer des imports lors de la génération de code Java (si j'avais su que c'était si compliqué de faire un pseudo générateur de code ).
    Pourquoi ne pas simplement déclarer ces packages dans un fichier de configuration ?

    a++

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Pourquoi ne pas simplement déclarer ces packages dans un fichier de configuration ?
    Parce que mon générateur de code doit pouvoir suivre l'évolution du package X sans que l'utilisateur n'est à faire quoi que ce soit (enfin un peu quand même).

    Du genre : l'utilisateur rajoute simplement le jar dans le répertoire /lib et ça suffit pour le générateur de code (en plus j'ai pas trop envie de prendre le risque d'avoir un fichier de conf non à jour avec le package... l'utilisateur final n'étant pas expert en info, bonjour les emmerdes !).

    EDIT : et merci pour l'aide.

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Essaye d'utiliser le package java.util.zip
    Je me souviens l'avoir utilisé pour décompresser des fichiers zip et obtenir nom de certains fichier.
    Je pense que ça doit marcher avec les fichiers jar...

Discussions similaires

  1. Problème pour lister les fichiers d'in JAR
    Par Micke7 dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2011, 11h21
  2. lister les fichiers d'un dossier dans un jar éxécutable
    Par Mageni dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/03/2010, 18h08
  3. Lister les fichiers de plusieurs sous-répertoire ?
    Par ratbiker dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 25/11/2005, 21h20
  4. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35
  5. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22

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