Пространства в JAVA_OPTS в Apache Tomcat - PullRequest
5 голосов
/ 22 декабря 2010

Как я могу передать свойство с пробелами, используя JAVA_OPTS, в Apache Tomcat?

Например;

-Dmy.property="How are you"

Моя операционная система - SUSE Linux.

Ответы [ 4 ]

1 голос
/ 14 апреля 2017

Я на самом деле понял это, используя AWS Elasticbeanstalk, который позволяет вам иметь пробелы в свойствах среды, которые вы можете ввести через пользовательский интерфейс.

В рамках сборки экземпляра сервера служба Elasticbeanstalk заменяет сценарий / usr / bin / tomcat7, чтобы удовлетворить некоторые из его требований.

Если вы проверите это, вы увидите следующую разницу:

Сценарий по умолчанию:

if [ "$1" = "start" ]; then
    ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \

Сценарий Elasticbeanstalk:

if [ "$1" = "start" ]; then
    eval "${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
    ...."

то есть они поместили "eval" перед командой для запуска JVM и заключили всю команду в двойные кавычки.

Это позволяет сохранить значения JAVA_OPTS с пробелами.

0 голосов
/ 01 сентября 2018

Давайте откроем файл $CATALINA_HOME\bin\catalina.sh.Вы увидите руководство от Apache Tomcat для переменной JAVA_OPTS

#   JAVA_OPTS       (Optional) Java runtime options used when any command
#                   is executed.
#                   Include here and not in CATALINA_OPTS all options, that
#                   should be used by Tomcat and also by the stop process,
#                   the version command etc.
#                   Most options should go into CATALINA_OPTS.

Вы хотите установить свойство -Dmy.property="How are you", это не свойство, поддерживаемое JVM.Вы должны поместить его в переменную CATALINA_OPTS.Если в значении вашего свойства есть пробелы, оберните его внутри " ".

#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in JAVA_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
#                   the version command etc.
#                   Examples are heap size, GC logging, JMX ports etc.

(Хотя вы использовали Apache Tomcat 5.5, я цитировал руководство из Apache Tomcat 9.0.11, поскольку оно существуетв моем компьютере)

0 голосов
/ 05 декабря 2013

Мне кажется, в JAVA_OPTS нет возможности использовать пробелы, у меня такая же проблема в OSX. Вы можете добавить свою собственность непосредственно к другим опциям -D в catalina.sh

0 голосов
/ 22 декабря 2010

попробуйте

-Dmy.property="How\ are\ you"
...