Ale*_*and 6 java bash shell tomcat tomcat6
我需要通过JAVA_OPTS环境变量将多个系统属性传递给Tomcat 6.我似乎无法传递包含空格的系统属性:
JRE_HOME=/root/jre1.6.0_34/ JAVA_OPTS="-DsysProp1=foo -DsysProp2=bar with spaces" ./catalina.sh run
Run Code Online (Sandbox Code Playgroud)
失败:
Using CATALINA_BASE: /root/apache-tomcat-6.0.37
Using CATALINA_HOME: /root/apache-tomcat-6.0.37
Using CATALINA_TMPDIR: /root/apache-tomcat-6.0.37/temp
Using JRE_HOME: /root/jre1.6.0_34/
Using CLASSPATH: /root/apache-tomcat-6.0.37/bin/bootstrap.jar
Exception in thread "main" java.lang.NoClassDefFoundError: with
Caused by: java.lang.ClassNotFoundException: with
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: with. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我环顾四周,答案似乎没有帮助.尝试了所有这些没有成功:
JRE_HOME=/root/jre1.6.0_34/ JAVA_OPTS="-DsysProp1=foo -DsysProp2=\"bar with spaces\"" ./catalina.sh run
JRE_HOME=/root/jre1.6.0_34/ JAVA_OPTS='-DsysProp1=foo -DsysProp2="bar with spaces"' ./catalina.sh run
JRE_HOME=/root/jre1.6.0_34/ JAVA_OPTS='-DsysProp1=foo -DsysProp2=bar\ with\ spaces' ./catalina.sh run
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您可以将属性设置放入conf/catalina.properties而不是使用JAVA_OPTS. 这是一个标准java.util.Properties格式文件,因此您不需要引用任何内容,它只是将第一个等号、冒号或空格之前的所有内容作为属性名称,并将其后的所有内容作为值:
sysProp2=bar with spaces
Run Code Online (Sandbox Code Playgroud)
如果您不能(或不想)直接修改该文件,您可以将其复制到另一个位置,编辑副本,然后通过
-Dcatalina.config=file:/path/to/copy/of/catalina.properties
Run Code Online (Sandbox Code Playgroud)
使其JAVA_OPTS从那里加载您的属性。
| 归档时间: |
|
| 查看次数: |
5432 次 |
| 最近记录: |