2010-01-06 58 views
38

En un script de shell, yo he dado la variable de entorno JAVA_OPTS (para habilitar la depuración remota y aumentar la memoria), y luego ejecuto el archivo jar de la siguiente manera:ejecutar Java con la variable JAVA_OPTS env

export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Xms512m -Xmx512m" 
java -jar analyse.jar $* 

Pero parece que no hay ningún efecto de la variable de env JAVA_OPTS ya que no puedo conectarme a la depuración remota y no veo cambios en la memoria para la JVM.

¿Cuál podría ser el problema?

PD: No puedo usar esas configuraciones en el comando java -jar analyse.jar $* porque proceso los argumentos de línea de comando en la aplicación.

Respuesta

39

No conozco ninguna JVM que realmente compruebe la variable de entorno JAVA_OPTS. Por lo general, esto se usa en scripts que inician JVM y, por lo general, solo lo agregan a la línea de comandos java.

La clave para entender aquí es que los argumentos a java que vienen antes el bit -jar analyse.jar sólo afectará a la JVM y no será pasado a lo largo de su programa. Por lo tanto, la modificación de la línea java en su secuencia de comandos para:

java $JAVA_OPTS -jar analyse.jar $* 

debe "sólo trabajo".

+0

Consulte la respuesta de HEX. Así es como configura las opciones usando una variable de entorno en OS X. – BitwiseMan

72

Puede configurar _JAVA_OPTIONS en lugar de JAVA_OPTS. Esto debería funcionar sin $_JAVA_OPTIONS.

+6

_Esta es la verdadera respuesta. Fui a buscar durante horas para encontrar esto. – BitwiseMan

+0

Intenté esto en Windows XP. No funcionó .. :( – Nerrve

+3

@Nerrve Especial para usted instaló Windows XP. Funciona bien. ¿Está seguro de haber hecho todo correctamente? – HEX

Cuestiones relacionadas