[java] récupérer le path du fichier .class associé à une classe

récupérer le path du fichier .class associé à une classe [java] - Java - Programmation

Marsh Posté le 02-07-2002 à 10:15:07    

bonjour,
j'ai un fichier myClass.class, et donc la classe myClass (jusque là tout le monde suit). je voudrais pouvoir récupérer le path du fichier myClass.class afin de le réutiliser pour chercher des fichiers dans le même repertoire. Si ce fichier et dans un jar, alors j'aimerais récupérer le chemin du jar + le chemin dans le jar :D
J'ai essayé

Code :
  1. URL getResource(String name)
  2.           Finds a resource with a given name.  InputStream getResourceAsStream(String name)
  3.           Finds a resource with a given name.


de la classe java.lang.Class, mais ça ne marche pas : ça renvoie null à chaque fois !
 
PS : oui, Darklord, je suis une grosse merde, j'ai paas assez potassé la doc, mais si tu as déjà eu à faire ça et que tu peux m'aider, ce serait sympa.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 02-07-2002 à 10:15:07   

Reply

Marsh Posté le 02-07-2002 à 10:33:35    

bin euh je vois vraiment pas l'intéret !
 
Réfléchis un peu. Déjà le chemin de ta classe est d'office basé sur le package. donc si ta classse MyClass (et non myClass) n'est pas dans un package, elle est tout simpleement dans le root du jar "/"
 
-> Si tu fais du refactoring pour placer ta classe dans un package ca va tout changer.
 
Bon:
 
1. Arrete d'appeller tes classes avec des noms débiles. Utilise des majuscules et plutot MyTest (que myClass)
 
2. Mets tes classes dans un package (bon si c'est une classe débile de test c'est pas grave mais pour de plus gros trucs -> packages)
 
3. Explique ce que tu veux faire. Si tu veux trouver une image dans le jar tu peux parfaitement déduire le chemin sur base d'un fichier de config ou autre. Se baser sur l'emplacelement d'une classe dans le classpath, je trouve ca complètement débile (désolé  :sweat: )
 
Voilà explique mieux quel genre de features tu veux et on trouvera un moyen plus propre ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 10:35:18    

ceci dit getResource accepte un package comme chemin de recherche. Donc si tes images sont dans com.monprojet.mesimages
 
tu peux parfaitement faire
 

Code :
  1. ...getResource("/com/monprojet/mesimages/toto.png" );


 
et dans ce cas il ira rechercher l'info où qu'elle soit (si ton package est dans un jar il ira chercher dans le jar, si c'est dans des reps de ton HD il ira là dedans, pour peu que ton classpath soit défini correctement)


Message édité par darklord le 02-07-2002 à 10:35:54

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 10:39:07    

alors, puisque tu le demande, je vais t'expliquer le pkoi :
je veux décompresser les fichier XML qui sont dans un .jar dans le même répertoire que le jar.
Maintenant, je regarde la solution que tu m'as proposé, merci
maintenant, c'est pour du J2EE, et ça doit tourner sur n'importe quel serveur d'app, donc Tomcat, Resin ou autre BEA. le pb, c'est que sous Tomcat ou Resin, il faut aller dans webapps, mais le chemin est différent pour BEA. D'où mon emmerdement de pas pouvoir mettre un path de type : "./webapps/monAppli/WEB-INF/lib/monJar.jar"


Message édité par z0rglub le 02-07-2002 à 10:41:53

---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 02-07-2002 à 10:55:57    

en tout cas, le getRessource marche bien en fait, j'avais pas mis le bon genre de chaîne (en effet, j'avais plutôt mis "com.projet.package.MyClass" ) et ça allait pas.
 
Ps : oui, merci, je suis une grosse merde, merci en tout cas Darklord, ton aide m'est précieuse


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 02-07-2002 à 11:20:58    

z0rglub a écrit a écrit :

en tout cas, le getRessource marche bien en fait, j'avais pas mis le bon genre de chaîne (en effet, j'avais plutôt mis "com.projet.package.MyClass" ) et ça allait pas.
 
Ps : oui, merci, je suis une grosse merde, merci en tout cas Darklord, ton aide m'est précieuse




 
de rien et non je pense pas que t'es une grosse merde. Crois moi le coup du getResource quand on me l'a appris il y a quelque temps j'était tout émerveillé :)
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-07-2002 à 11:25:07    

z0rglub a écrit a écrit :

alors, puisque tu le demande, je vais t'expliquer le pkoi :
je veux décompresser les fichier XML qui sont dans un .jar dans le même répertoire que le jar.
Maintenant, je regarde la solution que tu m'as proposé, merci
maintenant, c'est pour du J2EE, et ça doit tourner sur n'importe quel serveur d'app, donc Tomcat, Resin ou autre BEA. le pb, c'est que sous Tomcat ou Resin, il faut aller dans webapps, mais le chemin est différent pour BEA. D'où mon emmerdement de pas pouvoir mettre un path de type : "./webapps/monAppli/WEB-INF/lib/monJar.jar"




 
selon la spec J2EE, tout jar que tu mets dans le répertoire prévus à cet effet est automatiquement ajouté au classpath de l'app server. Donc je ne vois pas en quoi cela pose problème. Si il est dans le classpath getResource("/com/...." ) le trouvera


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 04-07-2002 à 23:36:00    

z0rglub a écrit a écrit :

PS : oui, Darklord, je suis une grosse merde, j'ai paas assez potassé la doc, mais si tu as déjà eu à faire ça et que tu peux m'aider, ce serait sympa.




 
 :lol:  :lol:  :lol:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed