Ubuntu Tomcat,Apache和Java中的环境变量

时间:2014-09-25 15:53:20

标签: java apache tomcat ubuntu environment-variables

我有一个在Windows环境中运行的java Web应用程序,我想将其移动到Ubuntu系统。 在Windows中,我使用环境变量来存储主路径:

MAIN_PATH=C:\test

此变量在许多配置文件中以及应用程序中使用,例如:

  • Apache和Tomcat配置文件
  • 应用程序日志记录配置(log4j)
  • System.getEnv(...)
  • 的Java应用程序本身

的示例:

tomcat config

 <Host name="localhost"  appBase="${MAIN_PATH}/webapps" unpackWARs="true" autoDeploy="true">

apache virtualhost

<VirtualHost *:80>
    DocumentRoot "${MAIN_PATH}/www"
    ServerName testmain
    <Directory "${MAIN_PATH}/www">
...

我找不到某种方法在ubuntu中设置它,我试过这个地方:

/etc/enviroment
/etc/profile
/etc/init.d/tomcat7.sh

中的

export MAIN_PATH=/opt/test

所有这些解决方案都不起作用或仅在我的一个要求中起作用(仅在服务器配置中但在应用程序中不起作用,反之亦然)。

对于所有这些情况,是否都不像windows全局环境变量?

2 个答案:

答案 0 :(得分:0)

你检查过ubuntu / linux文件吗?这很简单。

请参阅:https://help.ubuntu.com/community/EnvironmentVariables

这对我很有用。

  • $ nano / etc / environment(或您想要使用的任何文件编辑器)
  • 将'export MAIN_PATH = / opt / test'添加到文件并保存
  • $ source / etc / environment
  • $ echo $ MAIN_PATH
  • 输出:/ opt / test

答案 1 :(得分:0)

我建议您为应用程序的每个层分别保持环境变量。例如,似乎将所有内容放在一个地方是有意义的,但我觉得共享Apache和Tomcat的配置目录并不是一个好设计。两者都具有配置文件的标准位置(例如,$CATALINA_HOME/conf)。

我不认为你在Apache上使用log4j,所以为什么要把它放在一个与Apache共享的自定义目录中。将它放在webapp内的conf文件夹中,或者放在前面提到的顶级conf目录中。也许你会在Tomcat上拥有多个webapp - 在这种情况下,在特定的webapp目录中记录配置文件会更有意义。

在流程中包含环境变量也更清晰。它们不会破坏全球环境变量。例如,当您启动Tomcat时,setenv.sh脚本会运行并为运行Tomcat的java进程设置所有环境变量。

相关问题