我必须在 tomcat 启动脚本中设置一个以点分隔的环境变量。例如
host.name=localhost
我知道 shell 不接受点分隔的变量。有解决方法吗?
我发现我们可以使用环境变量,但似乎不起作用。我使用了
env host.name=localhost
有人能帮帮我吗?
答案1
非常感谢您的回复 AB。但是我找到了一个更好的解决方案。我只是CATALINA_OPTS
在文件中添加了 tomcat 的变量/usr/share/tomcat7/bin/setenv.sh
:
export CATALINA_OPTS="-Dhost.name=localhost"
这正是我想要的效果。
答案2
我不明白为什么 Tomcat 需要这样做。所有配置都在例如:/etc/tomcat7/server.xml
。我已经使用 Tomcat 好几年了,但我从来不需要这种配置。无论如何这里就是你的答案。
总结
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