Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lister le contenu d'un jar [ Archives / API ] (tominfo)

dimanche 28 mars 2004 à 04:01:08 | Lister le contenu d'un jar

tominfo


Salut à tous,

Pour créer un programme je dois lister le contenu d'un certain package appartenant au fichier jar (depuis lequel il est lancé). Malheureusement, apparemment on ne peut pas y acceder de la manière classique (avec java.io.File.list()) car les fichiers sont compressés et n'ont pas de chemin direct spécifié.

Si quelqu'un sait comment on peut lister le contenu d'un jar depuis le programme à partir duquel il est lancé, il me donnerait un sérieux coup de main...

Merci d'avance pour vos suggestions!

dimanche 28 mars 2004 à 11:53:56 | Re : Lister le contenu d'un jar

kirua12


Salut,

en utilisant java.util.jar.JarFile tu devrais arriver à faire ce que tu veux. Avec la méthode entries tu récupères une enumeration de JarEntry et en faisant un getName tu as le nom complet (package et nom de classe). Après il reste à filtrer selon le package que tu souhaites.

dimanche 28 mars 2004 à 12:50:18 | Re : Lister le contenu d'un jar

tominfo


J'avais déjà regarder cette classe mais j'avais pas trouvé de méthodes interressantes...

En tout cas,

en faisant un getName tu as le nom complet (package et nom de classe)

ça c'est axactement ce qu'il me faut!

Juste un petit détail, comment je fais pour charger mon propre jar? Le constructeur de JarFile demande un File ou un String. Il faut que je trouve depuis quel répertoire est executé mon jar? Comment je peux le savoir?

Merci beaucoup,
J'essaie ça tout à l'heure!

dimanche 28 mars 2004 à 12:58:35 | Re : Lister le contenu d'un jar

kirua12


une autre solution est de définir ton propre ClassLoader.
Il y a une méthode getPackage qui te donne tous les packages accessibles donc aussi ceux qui sont dans ton jar.
Cette méthode est protected donc il faut définir ton ClassLoader.


public class MonClassLoader extends ClassLoader {

public void listPackage() {
Package[] packages = getPackages();
for (int i = 0; i < packages.length; i++) {
System.out.println(packages[i].getName());
}
}

public static void main(String[] args) {
new MonClassLoader().listPackage();
}
}

Ce ClassLoader va te donner la liste des packages et tu n'as plus qu'à filtrer ceux que tu veux.

dimanche 28 mars 2004 à 13:04:05 | Re : Lister le contenu d'un jar

kirua12



oula !!!!
je me suis un peu emballé !! Ca te donne la liste des packages mais pas les classes.
Désolé décalage horaire, 1 heure de moins ca fait pas du bien !!

dimanche 28 mars 2004 à 13:20:57 | Re : Lister le contenu d'un jar

kirua12


Tu peux accéder à ton propre jar par le classpath.
Le classpath est défini dans la propriété java.class.path
Donc si ton classpath ne contient que ton jar tu peux faire

JarFile jarFile = new JarFile(System.getProperty("java.class.path"));


Si il y a plusieurs jars ou répertoires, il faut d'abord parser le classpath.

dimanche 28 mars 2004 à 15:23:18 | Re : Lister le contenu d'un jar

GodConan


GodConan

et si t fou ;o) tu peu tou desiper ;o) ds un rep temporaire ;o) et tu te retrouve ds une conf ;o) de fichier normal ;o)...

dimanche 28 mars 2004 à 15:32:09 | Re : Lister le contenu d'un jar

tominfo


Merci beaucoup pour toutes ces réponses...
Je vais tenter les solutions avec JarFile...
Et dans le cas extreme où y'a pas moyen de faire ce que je veux avec JarFile la solution de GodConan marchera forcément (enfin faut encore trouver un répertoire dans lequel on a les droits en écriture pour faire comme ça...)

Merci
@+

dimanche 28 mars 2004 à 19:17:24 | Re : Lister le contenu d'un jar

tominfo


Avec
JarFile(System.getProperty("java.class.path"));
jarFile.entries();
a marche super bien!

Merci à vous!



Cette discussion est classé dans : programme, lister, contenu, jar, lancé


Répondre à ce message

Sujets en rapport avec ce message

Lister le contenu d'un répertoire d'une archive JAR [ par jawspipeline ] salut, je cherche à lister le contenu d'un répertoire qui lui-même fait partie d'une archive JAR est ce que quelqu'un aurait une idée?? Merci. Jar éxecutable [ par magicyan ] Salut.J'ai un problème avec mes jar executable. Ils n'ont aucune association avec un programme. et kan je le lance je dois choisir quel programme pour Comment faire marcher un .JAR [ par asetti ] Slt,Mon tuteur me demande que je lui passe un executable de mon programme (fait sous JBuilderX fondation)J'ai créer un .jar qui marche parfaitement su Problème lors de la création d'un JAR executable [ par adakick ] Bonjour, j'ai créer un programme qui fonctionne correctement. Ce programme va rechercher des infos dans un fichier XML. Mon problème est que lorsque j Comment lister les fichiers d'un répertoire dans un jar ?? [ par thenaoh ] Bonjour à tous !!Dans mon appli, j'ai une partie de mon code qui me permet de lister les fichier texte d'u Librairies additionnelles [ par le_totophe ] Bonsoir à tous, je vous envoie ce post pour un petit renseignement:J'utilise pour mon programme de très nombreuses librairies additionnelles c'est-à-d Probleme de creation de jar executable [ par bundy318 ] Bonjour,Voici mon problème : J'ai crée un programme qui utilise quelques librairies dont jaxb. Le tout fonctionne bien avec eclipse 3.0. Ensuite j'exp Mise à jour d'un programme [ par pioug43 ] Je recherche un systéme, une librairie qui me permettrait de mettre à jour mon programme.Exemple librairie qui va chercher sur un serveur un fichier J Changer .java ou .class en .jar [ par didoux95 ] Bonjour a tous.apres avoir regarder attentivement toutes les questions du forum je vous demande "Comment passe t-on d'un programme avec l'extention "j Programme qui lance des classes d'autres jar [ par inquisitor87 ] Bonsoir, Je vodrais que mon programme java puisse ouvrir et afficher un panel contenu dans un autre jar différent mais dont on connait le nom (ex_pan


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.