Подтвердить что ты не робот

Как установить JAVA_OPTS для Tomcat в Windows?

Я пытаюсь установить JAVA_OPTS для Tomcat на компьютере под управлением Windows, но я продолжаю получать сообщение об ошибке, если я добавляю несколько переменных.

Например, это работает:

set JAVA_OPTS="-Xms512M"

Но это не так:

set JAVA_OPTS="-Xms512M -Xmx1024M"

Это приводит к ошибке:

Invalid initial heap size: -Xms512M -Xmx1024M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Как будто я могу установить одну переменную (-Xmx также будет работать), но не несколько.

Я использую инструктированный файл setenv.bat, а Tomcat - 7.0.35.

4b9b3361

Ответ 1

По-видимому, правильная форма без "

Как и в

set JAVA_OPTS=-Xms512M -Xmx1024M

Ответ 2

Для Windows в случае, если значение переменной имеет пробел ( "), правильный способ заключается в том, чтобы поместить кавычки (" ) перед именем переменной:

set "JAVA_OPTS=-Xms512M -Xmx1024M"

Ответ 3

Попробуйте

set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M

Ответ 4

Мне нравится комбинация Gaurav и user2550946, отвечающая лучше всего, но хотелось бы добавить еще два аспекта:

  • Не используйте JAVA_OPTS, вместо этого используйте CATALINA_OPTS. Это будет использоваться исключительно для запуска tomcat, а не для его закрытия. Как правило, вам нужно больше памяти при запуске tomcat, но процесс останова (который просто вращается, говорит, что tomcat выключается, а затем заканчивается снова) не нуждается в специально настроенных ресурсах. Фактически, выключение может даже потерпеть неудачу, если какой-то нелепый объем памяти больше не доступен из ОС.

  • В производственных системах моя рекомментация требует немедленного получения максимально допустимой памяти. Потому что, если вы ожидаете, что память понадобится рано или поздно, вы не хотите, чтобы она не была доступна в 3 часа ночи - скорее, когда вы запускаете сервер. Таким образом, установите -Xmx и -Xms на то же значение в производственных системах. (Это делает мой аспект 1 еще более актуальным)

Или, в одной строке, здесь моя рекомендация:

set "CATALINA_OPTS=%CATALINA_OPTS% -Xms1024M -Xmx1024M"

Ответ 5

Рекомендуется создать файл с именем setenv.bat и поместить его в каталог Tomcat bin. С помощью этого файла (который запускается скриптами catalina.bat и catalina.sh) вы можете изменить следующие параметры среды Tomcat с помощью переменной JAVA_OPTS:

Вы можете установить минимальный и максимальный размер кучи памяти с помощью

Параметры JVM -Xms и -Xmx.

Лучшие ограничения зависят от многих условий, таких как преобразования, которые должен выполнять интегратор ETL. Для преобразования информации Discovery рекомендуется максимум 1 ГБ. Например, чтобы установить минимальный размер кучи до 128 МБ и максимальный размер кучи до 1024 МБ, используйте

JAVA_OPTS=-Xms128m -Xmx1024m        

Вы должны установить максимальный предел пространства памяти PermGen (постоянное поколение) в размере, превышающем значение по умолчанию. По умолчанию 64 МБ недостаточно для корпоративных приложений. Подходящий предел памяти зависит от разных критериев, но в большинстве случаев выбор из 256 МБ будет хорошим выбором. Если максимум пространства PermGen слишком мал, могут возникнуть ошибки пространства OutOfMemoryError: PermGen. Максимальное ограничение PermGen можно установить с помощью следующего параметра JVM

    -XX:MaxPermSize=256m

По соображениям производительности рекомендуется, чтобы приложение запускалось в режиме сервера. По умолчанию Apache Tomcat не работает в режиме сервера. Вы можете установить режим сервера с помощью параметра JVM-сервера. Вы можете установить параметр JVM в переменной JAVA_OPTS в переменной среды в файле setenv.

The following is an example of a setenv.bat file:

set "JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=256m -server"

Ответ 6

Это связано с тем, что объем памяти, который вы хотите назначить для JVM, недоступен или, возможно, вы назначаете больше доступной памяти. Попробуйте небольшой размер, тогда вы сможете увидеть разницу. Пытаться: set JAVA_OPTS = -Xms128m -Xmx512m -XX: PermSize = 128m

Ответ 7

SET JAVA_HOME=C:\Applications\java\java_8
SET PATH=%PATH%;C:\Applications\java\java_8\bin
SET JAVA_OPTIONS=-d64 -Xms128g -Xmx128g