web-dev-qa-db-de.com

Das Ausführen von Java mit der env-Variablen Java_OPTS hat keine Auswirkung

In einem Shell-Skript habe ich die Umgebungsvariable Java_OPTS festgelegt (um das Remote-Debugging zu aktivieren und den Speicher zu vergrößern) und dann die JAR-Datei wie folgt ausgeführt:

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

Es scheint jedoch, dass die Variable Java_OPTS env keine Auswirkung hat, da ich keine Verbindung zum Remote-Debugging herstellen kann und keine Änderung im Arbeitsspeicher für die JVM feststelle.

Woran könnte das liegen?

PS: Ich kann diese Einstellungen nicht in der Java -jar analyse.jar $* Befehl, weil ich Befehlszeilenargumente in der Anwendung verarbeite.

Ich kenne keine JVM, die das Java_OPTS Umgebungsvariable. Normalerweise wird dies in Skripten verwendet, die die JVM starten, und sie fügen sie normalerweise einfach in die Befehlszeile von Java ein.

Der Schlüssel zum Verständnis ist, dass Argumente zu Java kommen vor dem -jar analyse.jar Bit wirkt sich nur auf die JVM aus und wird nicht weitergegeben wird an Ihr Programm weitergegeben. Ändern Sie also die Zeile Java in Ihrem Skript wie folgt:

Java $Java_OPTS -jar analyse.jar $*

Sollte "einfach funktionieren".

49
ZoogieZork

Sie können _Java_OPTIONS Anstatt von Java_OPTS. Dies sollte funktionieren ohne $_Java_OPTIONS.

84
HEX