Chargement du fichier log4j2.xml à partir du même répertoire que le fichier jar

StackOverflow https://stackoverflow.com//questions/23017161

  •  21-12-2019
  •  | 
  •  

Question

J'ai un répertoire /release/ contenant mon application.jar ainsi que le fichier log4j2.xml.Lorsque j'exécute l'application avec java -jar application.jar il ne récupérera pas le fichier de configuration log4j2.xml.Cela fonctionne si je spécifie explicitement l'emplacement du fichier XML comme ceci

java -Dlog4j.configurationFile=log4j2.xml -jar application.jar

Existe-t-il un moyen de demander à mon programme de toujours récupérer le fichier de configuration dans le même répertoire que celui dans lequel réside le fichier jar ?Je souhaite garder le programme aussi simple que possible et ne pas obliger l'utilisateur à définir une propriété système gênante lors de l'exécution de l'application.

Était-ce utile?

La solution

Sans la propriété système, log4j-2.0 recherchera un fichier log4j2.xml dans le chemin de classe.Je lis donc votre question comme suit :comment puis-je démarrer mon application avec java -jar application.jar et avez-vous le fichier log4j2.xml dans le chemin de classe ?

Cela dépend si votre fichier application.jar possède un Class-Path entrée dans son manifeste (http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8 ).

Vous pouvez bien sûr simplement inclure le fichier log4j2.xml dans le fichier application.jar.Si vous souhaitez éviter cela, vous pouvez ajouter le répertoire contenant le fichier log4j2.xml au Class-Path entrée dans le manifeste du fichier JAR.(Cela pourrait être le répertoire actuel ".".)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top