2012-09-25 6 views
29

Hubo un cambio en Java 1.7 en la forma en que se obtiene la configuración regional predeterminada del sistema operativo. Existen métodos para restaurar el comportamiento antiguo, p. estableciendo el indicador -Dsun.locale.formatasdefault = true cuando se inicia una instancia de JVM.Cómo establecer una propiedad del sistema java para que sea efectiva cada vez que inicio JVM sin agregarla a los argumentos de la línea de comando

Me gustaría establecer este indicador de forma permanente para que no tenga que especificarlo en los argumentos de la línea de comandos cada vez que inicie una instancia de JVM. ¿Hay algún archivo o alguna otra posibilidad para cambiar la configuración predeterminada de JVM? ¿Algo como el archivo Eclipse.ini pero para la JVM en sí?

+0

Pongo No creo que exista, pero puede crear una clase Boot que ejecute automáticamente su programa (con el método principal "verdadero" en otra clase), con los argumentos de línea de comando deseados presentes. – Vulcan

Respuesta

38

Puede establecer la variable de entorno set JAVA_TOOL_OPTIONS en su sistema operativo. Todas las herramientas de Java (java, javac, ..) seleccionarán esta variable y la usarán. Entonces podrías, por ejemplo, use

SET JAVA_TOOL_OPTIONS=-Dsun.locale.formatasdefault=true 

Utilizo esto para forzar una configuración regional específica para cada JVM.

Pero esto solo funciona si la aplicación se inicia a través de las herramientas de Java. Si es, por ejemplo, iniciado desde un programa C que llama a la DLL jvm, esto no se usará.

Editar: Yo sólo lo probó, y parece JAVA_TOOLS_OPTIONS También se recogió cuando se inician las DLL (verificado con una aplicación Swing que utiliza WinRun4J como un lanzador)

Ver: http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/envvars.html

+3

Usamos '_JAVA_OPTIONS' y parece funcionar, no sé si esto funcionará para llamar a través de la DLL, sin embargo, lo dudo. – MadProgrammer

+0

JAVA_TOOL_OPTIONS - ¡eso es exactamente lo que necesito, gracias! –

+0

@Bugpecker, podrías aceptar la respuesta entonces. ;) – Vadzim

Cuestiones relacionadas