2012-04-29 26 views
8

Soy nuevo en la API de registro de Java y necesito ayuda con este problema: Al crear la aplicación, mi archivo de configuración se almacenó en la carpeta raíz del proyecto, así que usé el interruptor -Djava.util.logging.config.file=logging.properties para ejecutar el programa. Pero luego exporté el JAR ejecutable. ¿Cómo configurar el registro ahora? No funciona, cuando especifico la ruta al archivo de configuración con el modificador -D.¿Cómo configurar el registro al ejecutar un JAR?

Respuesta

6

No se puede especificar argumentos de JVM en el archivo MANIFEST.MF por lo que tiene que especificar las propiedades de registro en la línea de comandos o con un acceso directo:

java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar 

de lo contrario podría empaquetar un archivo de propiedades (logging.properties en su caso) en el JAR, léalo al inicio y ponga esa configuración en las propiedades del sistema.

3

The javadoc dice:

Además, el LogManager utiliza dos propiedades del sistema opcionales que permiten más control sobre la lectura de la configuración inicial:

"java.util.logging.config.class" 
"java.util.logging.config.file" 

Estas dos propiedades se puede fijar a través de las Preferencias API, o como comando definiciones de propiedad de línea para el comando "java", o como propiedad del sistema , las definiciones pasaron a JNI_CreateJavaVM.

Si se establece la propiedad "java.util.logging.config.class", el valor de la propiedad se trata como un nombre de clase. La clase dada será cargada, un objeto será instanciado, y el constructor de ese objeto es responsable de leer en la configuración inicial. (Ese objeto puede usar otras propiedades del sistema para controlar su configuración.) La clase de configuración alternativa puede usar readConfiguration (InputStream) para definir propiedades en el LogManager.

Así que, o utilizar la propiedad java.util.logging.config.file sistema, y ​​almacenar el archivo de configuración del archivo JAR (que es probablemente una buena idea si usted quiere ser capaz de personalizar las propiedades de registro con el fin de depurar o analizar algunos comportamiento extraño), o almacena el archivo de configuración donde quieras (en el archivo jar, por ejemplo) y usa la propiedad del sistema java.util.logging.config.class para cargar y crear una instancia de una clase que leerá el archivo en el archivo jar (usando Class.getResourceAsStream()).

Cuestiones relacionadas