在Tomcat应用程序中的shell脚本/访问中设置环境变量

时间:2012-04-14 11:19:05

标签: java linux tomcat environment-variables ubuntu-10.04

我想添加可以通过我的tomcat web-app访问的环境变量。我已经通过this link但我想在root用户中设置环境变量。怎么做?

4 个答案:

答案 0 :(得分:5)

根据文档(http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt),您应该在$ CATALINA_HOME / bin / setenv.sh

中设置所有环境变量

编辑: 为了完整起见,我想值得一提的是,尽管这是推荐的方式,但上述文档指出:

  

默认情况下,setenv脚本文件不存在。如果脚本文件是   同时出现在CATALINA_BASE和CATALINA_HOME中   CATALINA_BASE是首选。

如果它不存在,您可能还想在以下位置查找env vars:

  • /etc/tomcat/tomcat[67].conf(suse)或
  • /etc/default/tomcat[67].conf(例如ubuntu)或
  • /etc/sysconfig/tomcat[67].conf(rhel,fedora)

答案 1 :(得分:0)

得到了解决方案......我所做的是将/etc/init.d/tomcat6中的导出语句置于顶部,并通过命令sudo /etc/init.d/tomcat6 restart重新启动服务器。所以现在我在tomcat服务器上运行的web-app可以访问该变量。

答案 2 :(得分:0)

这是您可以做到的

  1. 将sudo su和cd转到/ var / lib / tomcat8 / bin /(或您的tomcat bin路径中的任意一个)
  2. 触摸setenv.sh(如果不存在),如果文件已经存在,请执行“ vi setenv.sh”
  3. chmod 777 setenv.sh(使文件可执行)
  4. vi setenv.sh并在setenv.sh中设置以下行 导出key = value
  5. sudo systemctl重新启动tomcat.service

在您的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);
}

答案 3 :(得分:-1)

这不起作用吗?

转到您的环境文件。 sudo vi / etc / environment和 添加所需的变量。并保存文件。

我认为在最近的Ubuntu中,您必须重新启动系统才能使更改生效。