【发布时间】:2012-04-26 13:06:35
【问题描述】:
我想添加可以通过我的 tomcat web-app 访问的环境变量。我已经通过this link,但我想在 root 用户中设置环境变量。该怎么做?
【问题讨论】:
标签: java linux tomcat environment-variables ubuntu-10.04
我想添加可以通过我的 tomcat web-app 访问的环境变量。我已经通过this link,但我想在 root 用户中设置环境变量。该怎么做?
【问题讨论】:
标签: java linux tomcat environment-variables ubuntu-10.04
这行不通吗?
转到您的环境文件。 sudo vi /etc/environment 和 添加所需的变量。并保存文件。
我认为在最近的 Ubuntu 中,您必须重新启动系统才能使更改生效。
【讨论】:
/etc/init.d/tomcat7 并添加 export FOO=bar
sudo service service_name start时的Ubuntu文档,/etc/environment中的环境没有被引用。另见问题:stackoverflow.com/questions/16645430
得到了解决方案...我所做的是将导出语句放在/etc/init.d/tomcat6 的顶部,并通过命令sudo /etc/init.d/tomcat6 restart 重新启动服务器。所以现在我在 tomcat 服务器上运行的网络应用程序可以访问该变量。
【讨论】:
/etc/init.d/tomcat6 不是一个好主意。您的更改可能会干扰未来的更新,而且您正在修改默认的 Tomcat 行为。对我来说似乎很老套。
根据文档 (http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt),您应该在 $CATALINA_HOME/bin/setenv.sh 中设置所有环境变量
编辑: 为了完整起见,我想值得一提的是,尽管这是推荐的方式,但上面的文档指出:
默认情况下 setenv 脚本文件不存在。如果脚本文件是 存在于 CATALINA_BASE 和 CATALINA_HOME 中,其中一个 首选 CATALINA_BASE。
如果它不存在,您可能还想在以下位置查找环境变量:
/etc/tomcat/tomcat[67].conf (suse) 或 /etc/default/tomcat[67].conf(例如 ubuntu)或 /etc/sysconfig/tomcat[67].conf (rhel, fedora)【讨论】:
你可以这样做
在您的 java 文件中,您可以使用以下代码检查变量是否已设置
private static void printEnv() {
System.out.println("******************************Environment Vars*****************************");
Map<String, String> enviorntmentVars = System.getenv();
enviorntmentVars.entrySet().forEach(System.out::println);
System.out.println("******************************system Vars*****************************");
Properties enviorntmentProperties = System.getProperties();
enviorntmentVars.entrySet().forEach(System.out::println);
}
【讨论】: