Bonsoir tout le monde,
Voici ma question. J'ai créé un jar executable pour mon appli structurée de la facon suivante :
rootFolder/
- conf/
-- my.properties
- script/
-- theJar.jar (contenant myOther.properties)
- lib/
-- mylibs.jar (...)
J'ai écrit le MANIFEST comme ceci :
(..)
Main-Class : com.my.MainClass
Classpath : ../conf/ ../lib/mylib1.jar ../lib/mylib2.jar...
(..)
Quand j'execute mon jar avec "java -jar theJar.jar", les propriétés utilisées sont celles situées dans le jar "myOther.properties" (packagées avec Maven). Mais je voudrais que mon jar utilise celles situées dans le répertoire supérieur "conf" (créé avec Maven assembly).
J'ai réussi en utilisant la ligne de commande : "java -cp conf/;lib/;script/theJar.jar com.my.MainClass".
Donc, quel est le mécanisme qui permet à la JVM de définir les priorités dans le classpath? Pourquoi la commande "-cp" n'utilise pas le manifest? Et comment faire en sorte qu'avec le manifest et "java -jar", je puisse utiliser les propriétés du répertoire "conf" en priorité par rapport à celle dans le jar?
Merci pour vos éclairages!
Partager