Pregunta

Tengo un directorio /release/ que contiene mi application.jar así como la log4j2.xml archivo.Cuando ejecuto la aplicación con java -jar application.jar no va a recoger el log4j2.xml archivo de configuración.Funciona si me explícitamente especificar la ubicación del archivo xml como así

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

Hay una manera que puedo instruir a mi programa para que siempre recoger el archivo de configuración desde el mismo directorio que el frasco reside en?Quiero que el programa sea lo más simple posible y no requieren que el usuario establezca un torpe propiedad del sistema cuando se ejecuta la aplicación.

¿Fue útil?

Solución

Sin el sistema de propiedad, log4j-2.0 para buscar log4j2.xml archivo en la ruta de clases.Así que me estoy leyendo tu pregunta como:¿cómo puedo iniciar mi aplicación con java -jar application.jar y tiene el log4j2.xml archivo en la ruta de clases?

Esto depende de si su application.jar el archivo tiene una Class-Path entrada en su manifiesto (http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8 ).

Usted simplemente podría incluir la log4j2.xml en el archivo de application.jar archivo, por supuesto.Si usted quiere evitar que, se podría añadir el directorio que contiene el log4j2.xml archivo de la Class-Path la entrada en el archivo JAR de manifiesto.(Este podría ser el "." directorio actual.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top