Esecuzione di java con variabile env JAVA_OPTS

In uno script di shell, ho impostato la variabile di ambiente JAVA_OPTS (per abilitare il debug remoto e aumentare la memoria), quindi eseguo il file jar come segue:

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 in quanto non riesco a connettermi al debug remoto e non vedo alcun cambiamento in memoria per la JVM.

Quale potrebbe essere il problema?

PS: Non posso usare queste impostazioni nel java -jar analyse.jar $* perché java -jar analyse.jar $* argomenti della riga di comando nell’applicazione.

Non conosco alcuna JVM che controlli effettivamente la variabile di ambiente JAVA_OPTS . Di solito questo è usato negli script che lanciano la JVM e di solito la aggiungono semplicemente alla riga di comando java .

La cosa fondamentale da capire qui è che gli argomenti su java che precedono il bit -jar analyse.jar avranno effetto solo sulla JVM e non verranno passati al tuo programma. Quindi, modificando la linea java nello script per:

 java $JAVA_OPTS -jar analyse.jar $* 

Dovrebbe “funzionare”.

Puoi configurare _JAVA_OPTIONS anziché JAVA_OPTS . Questo dovrebbe funzionare senza $_JAVA_OPTIONS .