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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Repertoire principale
-> monJar.jar
-> resources
---------> log4j.properties
-> lib
---------> ...
Et le manifeste du .jar comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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é