Comment connaître les jars chargées dans la jvm ?

Résolu
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 16 sept. 2008 à 11:21
cs_khawlagammoudi Messages postés 4 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 juin 2012 - 9 déc. 2011 à 14:58
Salut,

(Je dois travailler sous Eclipse)

Que ce soit sur des petits projets utilisant des jars peu orthodoxes, ou sur de grands projets utilisant beaucoup de jar (Plus de 70 dans mon projet en cours...), je rencontre régulièrement des problèmes.

Par exemple, j'ai parfois plusieurs .jar contenant la même chose en version différentes, donc avec des méthodes différentes, donc le tout plante à l'exécution.

Je travaille avec tomcat, jetspeed... tout le monde se partage les libs et tout le monde n'a pas besoin de la même chose.

La config est complexe : j'ai des dépendances entre projet par exemple. Donc quand je sélectionne sous Eclipse dans les "java build path" sur un projet, je ne sais pas qu'elle sont les répercusion sur le projet d'à côté : quelles seront les jars chargés au final ?

Je sais que l'on peut récupérer la ligne de commande en faisant un clique droit sur le processus puis "propriété", mais c'est assez illisible et cela ne m'avance pas beaucoup.

Bref, je suis dans le brouillard.

Je me demande donc s'il existe un outil (ou un plugin eclipse, ou des classes d'interrogation de la jvm...) permettant de connaître tous les jars :
Leurs ordres de chargement.
Leurs emplacement sur le disque.
Leurs versions.

de n'importe quelle jvm qui tourne sur un PC.

En un mot, je voudrais ça, mais en java.

Merci d'avance.

6 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
16 sept. 2008 à 16:40
tu pourras recuperer tes dossiers mais je suis aps sur que tu pourras recuperer chaqun des jar

si j'etais toi je ferais le menage dans ma config.

Sinon les classes chargees par un programme lance par eclipse seront celle dans /jre/lib /jre/lib/ext plus celle definis dans la variable classpath du systeme, plus celle que tu as ajoutee dans le build path ...

tu verras tout les jars utilise par une appli dans eclipse dans le dossier du projet il te les montre

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
3
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
16 sept. 2008 à 17:54
Salut,
dans le répertoire bin de la jdk 1.5 - 1.6, tu pourras trouver un exe s'appelant jconsole qui permet de voir les programmes en cours, et pas mal d'info dessus (dans la versiion 1.6, tu as également jvisualvm.exe). Ceci est assez pratique pour voir ce qui a été chargé, et voir la consommation CPU, mémoire ...

A voir

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 sept. 2008 à 19:07
Ah bah tout bêtement y a une option de la jvm qui envoie dans la console toutes les classes chargées, et à partir de quel jar elles le sont. Nickel pour une appli lancée en invite.

Par contre, dommage, sous Eclipse, on dirait qu'un certains nombre de jar sont déjà chargé quand on lance le debug... Probablement tout ceux de la liste de gauche de sheorogath... La liste à l'air ordonnée d'ailleurs.

Bon on va dire que ça va me suffire. Merci tout le monde.

<hr />
java -verbose:class -jar Notepad.jar

[Opened C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Opened C:\j2sdk1.4.2_17\jre\lib\sunrsasign.jar]
[Opened C:\j2sdk1.4.2_17\jre\lib\jsse.jar]
[Opened C:\j2sdk1.4.2_17\jre\lib\jce.jar]
[Opened C:\j2sdk1.4.2_17\jre\lib\charsets.jar]
[Loaded java.lang.Object from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.io.Serializable from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.Comparable from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.CharSequence from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.String from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.Class from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.Cloneable from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.ClassLoader from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.System from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
[Loaded java.lang.Throwable from C:\j2sdk1.4.2_17\jre\lib\rt.jar]
...
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 sept. 2008 à 17:27
"/jre/lib /jre/lib/ext plus celle definis dans la variable classpath du systeme, plus celle que tu as ajoutee dans le build path ..."

Vi c'est le bordel quoi ! J'ai pas très envie de faire de la voyance et d'imaginer qui sera chargé et dans quel ordre...

Je suis tombé sur la JConsole qui passe par des classes (Par exemple).

Mais je n'y ai rien trouvé sur les jars...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 sept. 2008 à 18:29
Ah vi c'est du très bon ça !

On peut même voir toutes les instances !

Mais bon ça donne pas encore ce que je veux, a savoir de quel jar proviennent les classes de ces instances.
0
cs_khawlagammoudi Messages postés 4 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 15 juin 2012
9 déc. 2011 à 14:58
je veux consulter le sunrsasign.jar puisque j'ai un projet de chat mé je peux pas executer le serveur ?
0
Rejoignez-nous