2010-01-06 4 views
38

В сценарии оболочки, я установить переменную окружения JAVA_OPTS (для включения удаленной отладки и увеличения объема памяти), а затем я выполняю .jar файл следующим образом:Запуск Java с переменной JAVA_OPTS окр

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

Но это похоже, что нет никакого эффекта от переменной JAVA_OPTS env, поскольку я не могу подключиться к удаленной отладке, и я не вижу изменений в памяти для JVM.

В чем может быть проблема?

PS: Я не могу использовать эти настройки в команде java -jar analyse.jar $*, потому что обрабатываю аргументы командной строки в приложении.

ответ

39

Я не знаю ни одного JVM, который фактически проверяет переменную окружения JAVA_OPTS. Обычно это используется в сценариях, запускающих JVM, и обычно они просто добавляют их в командную строку java.

Главное, чтобы понять, что аргументы в java, которые приходят до того-jar analyse.jar бит будет влиять только на JVM и не будут переданы к вашей программе. Таким образом, изменяя java строку в скрипте:

java $JAVA_OPTS -jar analyse.jar $* 

Если «просто работать».

+0

См. Ответ HEX. Вот как вы устанавливаете параметры, используя переменную среды в OS X. – BitwiseMan

72

Вы можете установить _JAVA_OPTIONS вместо JAVA_OPTS. Это должно работать без $_JAVA_OPTIONS.

+6

_This_ это реальный ответ. Я искал вокруг часами, чтобы найти это. – BitwiseMan

+0

Я пробовал это на Windows XP. Didnt work .. :( – Nerrve

+3

@Nerrve Special для вас установлена ​​Windows XP. Работает нормально. Вы уверены, что все сделали правильно? – HEX