如何将使用JAVA_OPTS
的空格的属性传递给Apache Tomcat?
例如;
-Dmy.property="How are you"
我的操作系统是SUSE Linux。
答案 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"