Apache Tomcat中JAVA_OPTS中的空格

时间:2010-12-22 20:24:39

标签: java linux suse tomcat5.5

如何将使用JAVA_OPTS的空格的属性传递给Apache Tomcat?

例如;

-Dmy.property="How are you"

我的操作系统是SUSE Linux。

4 个答案:

答案 0 :(得分:1)

我实际上是使用AWS Elasticbeanstalk来解决这个问题,它允许您通过UI输入环境属性中的空格。

作为服务器实例构建的一部分,Elasticbeanstalk服务替换/ usr / bin / tomcat7脚本以满足其一些要求。

如果您选中此项,则可以看到以下区别:

默认脚本:

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

Elasticbeanstalk脚本:

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

即他们在启动JVM的命令之前放置了一个“eval”,并用双引号括起整个命令。

这似乎允许保留带空格的JAVA_OPTS值。

答案 1 :(得分:0)

对我来说似乎没有办法在JAVA_OPTS中使用空格,我在OSX上遇到了同样的问题。 您可以将属性直接添加到catalina.sh

中的其他-D选项

答案 2 :(得分:0)

打开文件$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的指南,因为它已存在于计算机中)

答案 3 :(得分:-3)

试试这个

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