Pointeur nulle avec getRessource
Bonjour,
Je me suis depuis peu sous maven et j'essaie de déployer une application. J'utilise pour cela un assembly pour composer mon zip livrable dont voici l'arborescence:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
resources
--- application
--- *.mdl
--- configTresos
--- *.mdl
--- config.xml
--- log4j.properties
lib
--- *.jar
appli.jar |
Le pom est configuré de sorte à générer un manifest dont voici le contenu:
Code:
1 2 3 4 5 6 7 8 9
|
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Hsmr
Class-Path: resources/ lib/toolbox-1.0.0.jar lib/jep-2.24.jar lib/jdom
-1.1.jar lib/jxl-2.6.3.jar lib/log4j-1.2.14.jar
Created-By: Apache Maven 3.2.3
Build-Jdk: 1.8.0_25
Main-Class: com.valeo.devsrv.main.Main |
Dans ma classe main, je configure mon logger de la façon suivante:
Code:
1 2 3 4 5 6 7
|
public static void main(String[] args) {
//configure le logger
PropertyConfigurator.configure(Main.class.getResource("/log4j.properties").getFile());
... |
Un coup de mvn install me génère bien mon zip comme voulu. Mais quand je lance le jar dans une console j'ai le message suivant:
Code:
1 2 3
|
Exception in thread "main" java.lang.NullPointerException
at com.valeo.devsrv.main.Main.main(Main.java:26) |
La ligne incriminée correspond bien à la ligne où je configure mon logger. Je comprends que l'appel à getResource n'arrive pas à trouver le fichier log4j.properties. Le pourquoi je n'arrive pas à me l'expliquer et ce malgré mes recherches sur le net. Le répertoire resources contenant le *.properties est bien renseigné dans le class-path du manifest généré.
Merci pour votre aide.
Cdt