6

JAVA_OPTS 環境変数を介して Tomcat 6 に複数のシステム プロパティを渡す必要があります。スペースを含むシステム プロパティを渡すことができないようです。

JRE_HOME=/root/jre1.6.0_34/ JAVA_OPTS="-DsysProp1=foo -DsysProp2=bar with spaces" ./catalina.sh run

次の場合に失敗します。

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.   

私はSOを見回しましたが、答えは役に立たないようです。これらすべてを試してみましたが、成功しませんでした:

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
4

2 に答える 2

3

conf/catalina.properties別の方法として、を使用する代わりにプロパティ設定を に入れることもできますJAVA_OPTS。これは標準java.util.Properties形式のファイルなので、何も引用する必要はありません。最初の等号、コロン、またはスペースの前のすべてをプロパティ名として取り、その後のすべてを値として取ります。

sysProp2=bar with spaces

そのファイルを直接変更できない (または変更したくない) 場合は、それを別の場所にコピーし、コピーを編集してから渡すことができます。

-Dcatalina.config=file:/path/to/copy/of/catalina.properties

JAVA_OPTSそこからプロパティをロードするようにします。

于 2013-08-21T14:35:57.527 に答える