Log4j et classpath - Externaliser un fichier .properties
Hello!
Je butte depuis quelque jours sur un problèmes avec les classpath et Log4J
Dans la logique de Log4j (API pour le logging), il faut qu'un fichier log4j.properties se trouve à la racine du jar, ou dans le classpath de l'application.
Dans le déroulement de mon projet, on a voulu externaliser tous les fichiers de ressources (images, .properties, etc...)
On a donc une arborescence de l'application comme ceci (après compilation):
Code:
1 2 3 4 5 6
| Repertoire principale
-> monJar.jar
-> resources
---------> log4j.properties
-> lib
---------> ... |
Et le manifeste du .jar comme ceci :
Code:
1 2 3 4 5 6
| Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_21-b06 (Sun Microsystems Inc.)
Main-Class: Main
Class-Path: lib/log4j-1.2.16.jar lib/jul-to-slf4j-1.6.1.jar lib/slf4j-
api-1.6.1.jar lib/slf4j-log4j12-1.6.1.jar resources/log4j.properties |
Mais lors du lancement de l'applic, Log4j n'arrive pas à trouver le fichier de propriétés.
J'ai aussi essayé de lancer mon jar avec la commande
Code:
java -cp resources/log4j.properties -jar monJar.jar
Mais ça ne fonctionne pas non plus.
Bref, je suis un peu perdu avec ces histoires de classpath, ça me paraît être super difficile, donc je venais voir si vous aviez quelques conseil pour un débutant en classpath ;)
Je précise que je développe sous NetBeans 6.9.1, et que je n'ai pas trouvé de manière "propre" jusqu'à maintenant d'avoir une applic fonctionnelle depuis l'IDE sans qu'il copie le fichier resources dans le jar.
J'ai aussi voulu le faire "à la main" en plongeant dans le fichier build.xml de Ant, mais j'ai vite déchanté :roll: