Tomcat起動スクリプトで、ドットで区切られた環境変数を設定する必要があります。例えば
Host.name=localhost
Shellはドット区切りの変数を受け入れないことを知っています。回避策はありますか?
どこかでenv変数を使用できることがわかりましたが、うまくいかないようです。私は使った
env Host.name=localhost
誰でも私を助けてくれますか?
返信ABに感謝します。しかし、私ははるかに優れたソリューションを見つけました。ファイルCATALINA_OPTS
のTomcatの/usr/share/Tomcat7/bin/setenv.sh
変数に追加しただけです。
export CATALINA_OPTS="-Dhost.name=localhost"
これは私が望んでいた通りに機能しました。
Tomcatに必要な理由がわかりません。すべての構成は、たとえば次のとおりです:/etc/Tomcat7/server.xml
。私はTomcatで数年働いてきましたが、この種の構成は必要ありませんでした。とにかく here が答えです。
TL; DR
env "Host.name=localhost"
でテストする:
env "Host.name=localhost" Perl -le 'print $ENV{"Host.name"}'
またはJavaの場合:
実行可能なjar
を作成します
package stackoverflow;
import Java.util.Map;
public class PrintEnv {
public static void main(String[] args) {
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.println(envName + ": " + env.get(envName));
}
}
}
そしてテスト:
env "Host.name=localhost" Java -jar PrintEnv.jar | grep Host.name