Запуск java с переменной JAVA_OPTS env
В оболочке script я установил переменную среды JAVA_OPTS (чтобы включить удаленную отладку и увеличить память), а затем я запускаю файл jar следующим образом:
export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Xms512m -Xmx512m"
java -jar analyse.jar $*
Но, похоже, нет никакого эффекта переменной env JAVA_OPTS, поскольку я не могу подключиться к удаленной отладке, и я не вижу изменений в памяти для JVM.
В чем может быть проблема?
PS: Я не могу использовать эти настройки в команде java -jar analyse.jar $*
, потому что я обрабатываю аргументы командной строки в приложении.
Ответы
Ответ 1
Я не знаю ни одной JVM, которая фактически проверяет переменную среды JAVA_OPTS
. Обычно это используется в сценариях, запускающих JVM, и обычно они просто добавляют их в командную строку java
.
Ключевым моментом здесь является то, что аргументы java
, которые появляются перед битом -jar analyse.jar
, будут влиять только на JVM и не будут переданы вместе с вашей программой. Итак, изменив строку java
в script на:
java $JAVA_OPTS -jar analyse.jar $*
Должен "просто работать".
Ответ 2
Вы можете установить _JAVA_OPTIONS
вместо JAVA_OPTS
. Это должно работать без $_JAVA_OPTIONS
.