2010-01-06 13 views
38

In uno script, ho impostare la variabile di ambiente JAVA_OPTS (per attivare il debug remoto e aumentare la memoria), e poi eseguire il file jar come segue:esecuzione java con variabile JAVA_OPTS env

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

Ma sembra che non ci sia alcun effetto della variabile env JAVA_OPTS poiché non riesco a connettermi al debug remoto e non vedo cambiamenti nella memoria per la JVM.

Quale potrebbe essere il problema?

PS: non posso utilizzare tali impostazioni nel comando java -jar analyse.jar $* perché ho elaborare gli argomenti della riga di comando nella domanda.

risposta

39

non so di qualsiasi JVM che controlla in realtà la variabile JAVA_OPTS ambiente. Di solito questo viene utilizzato negli script che lanciano la JVM e di solito basta aggiungere alla riga di comando java.

La cosa fondamentale da capire è che gli argomenti a java che vengono prima il bit -jar analyse.jar interesseranno solo la JVM e non verranno passati insieme al vostro programma. Così, modificando la linea java nello script per:

java $JAVA_OPTS -jar analyse.jar $* 

dovrebbe "solo lavoro".

+0

risposta di See HEX. Questo è il modo di impostare le opzioni mediante una variabile d'ambiente su OS X. – BitwiseMan

72

È possibile impostare _JAVA_OPTIONS anziché JAVA_OPTS. Questo dovrebbe funzionare senza $_JAVA_OPTIONS.

+6

_This_ questa la vera risposta. Sono andato a cercare in giro per ore per trovare questo. – BitwiseMan

+0

Ho provato questo su Windows XP. lavoro non ha ancora .. :( – Nerrve

+3

@Nerrve speciale per voi installato Windows XP Funziona bene Sei sicuro che hai fatto tutto correttamente – HEX