OVH Cloud OVH Cloud

Répertoire du Jar

3 réponses
Avatar
Hamiral
Bonjour,

J'ai besoin de connaître le répertoire de mon programme Java. J'ai trouvé
comment le faire pour des fichiers class se trouvant dans le répertoire,
mais voilà, mon programme est distribué sous la forme d'un Jar, j'imagine
donc que cela risque de compliquer les choses.

Donc, si vous pouviez m'indiquer une piste où commencer mes recherches sur
la question, je suis preneur !

Merci d'avance
--
Hamiral

3 réponses

Avatar
Frederic Lachasse
"Hamiral" wrote in message
news:4431847b$0$6516$
Bonjour,

J'ai besoin de connaître le répertoire de mon programme Java. J'ai trouvé
comment le faire pour des fichiers class se trouvant dans le répertoire,
mais voilà, mon programme est distribué sous la forme d'un Jar, j'imagine
donc que cela risque de compliquer les choses.

Donc, si vous pouviez m'indiquer une piste où commencer mes recherches sur
la question, je suis preneur !


Utilise la méthode getResource() de la class ClassLoader pour récupérer
l'URL vers l'une des classes/resources de ton jar. Dans le cas où tu as un
URL type "file:", cela veut dire que la classe est dans un répertoire, pas
dans un jar (mais je suppose que tu sais déjà cela). Si la resource est dans
un jar, l'URL est de type "jar:", il a pour format":

jar:<URL>!<resource>

URL étant un URL type file: vers le jar. Par exemple:

jar:file:D:worklibprogram.jar!/com/package/Main.class

Ensuite, extraire le path vers le JAR est facile.

--
Frédéric Lachasse - ECP86

Avatar
Hervé AGNOUX
Hamiral wrote:


J'ai besoin de connaître le répertoire de mon programme Java. J'ai trouvé
comment le faire pour des fichiers class se trouvant dans le répertoire,
mais voilà, mon programme est distribué sous la forme d'un Jar, j'imagine
donc que cela risque de compliquer les choses.



Le répertoire d'un programme java est une notion qui ne veut pas toujours
dire quelque chose, aussi je te conseille de réfléchir avant d'agir, et de
voir plus en terme de service que tu veux rendre à l'utilisateur (ou à qui
ça intéresse).

Pour ce genre de chose tu peux utiliser des propriétés systèmes. Elles sont
décrites dans le javadoc à java.lang.System.getProperties().

En particulier, celle user.dir, correspond quelques fois au répertoire du
programme.

Quelques fois également tu peux analyser le CLASSPATH grâce à la propriété
système "java.class.path". Dedans il y a quelques fois ton jar, que tu
pourras retrouver en décodant la série des jars, puis en en retrouvant le
répertoire si, par chance, ton jar est dans un répertoire.

Etc.


--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
Hamiral
Frederic Lachasse wrote:

Ensuite, extraire le path vers le JAR est facile.


Merci, c'est exactement ce qu'il me fallait !

--
Hamiral