TOMCAT_OPTS,环境变量和System.getEnv()

时间:2011-02-25 08:59:38

标签: java tomcat maven environment-variables

我使用tomcat,我想在我的java代码中获取一个环境变量。

要设置环境变量,我使用此bash命令:

export TOMCAT_OPTS=-Dmy.var=foo

之后我启动tomcat

./startup.sh (in bin folder of tomcat)

在我的java代码中,我尝试获取此变量:

System.getEnv("my.var")

但它返回NULL。

我该怎么做?

我确切地说,如果我使用maven启动tomcat并使用eclipse环境选项卡,则找到该变量!但我需要在生产模式下像上面那样启动tomcat。

编辑:直接使用导出MY_VAR时,它在本地但不在我的服务器上运行...

9 个答案:

答案 0 :(得分:18)

System.getEnv返回环境变量,如PATH,或者在您的示例中,返回TOMCAT_OPTS)。

使用-Dfoo=bar调用Java时,不设置环境变量:传递系统属性。使用System.getProperty获取foo的值。

答案 1 :(得分:15)

我终于在CATALINA_HOME中找到了一个名为tomcat6.conf的配置文件。 我将export my.var = foo添加到文件末尾,System.getenv(“my.var”)现在返回值...

...梦魇

答案 2 :(得分:13)

如果你使用的是tomcat 7和ubuntu os,你可以编辑/ etc / default / tomcat7文件, 只需添加一行汽车=您的价值就可以了。

如下所示:

# Run Tomcat as this user ID. Not setting this or leaving it blank will use the
# default of tomcat7.
TOMCAT7_USER=tomcat7

# Run Tomcat as this group ID. Not setting this or leaving it blank will use
# the default of tomcat7.
TOMCAT7_GROUP=tomcat7

IM4JAVA_TOOLPATH=/usr/local/bin/

# The home directory of the Java development kit (JDK). You need at least
# JDK version 1.5. If JAVA_HOME is not set, some common directories for
# OpenJDK, the Sun JDK, and various J2SE 1.5 versions are tried.
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk

# You may pass JVM startup parameters to Java here. If unset, the default
# options will be: -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC
# 
# Use "-XX:+UseConcMarkSweepGC" to enable the CMS garbage collector (improved
# response time). If you use that option and you run Tomcat on a machine with
# exactly one CPU chip that contains one or two cores, you should also add
# the "-XX:+CMSIncrementalMode" option.
JAVA_OPTS="-Djava.awt.headless=true -Xmx2048m -XX:+UseConcMarkSweepGC"

答案 3 :(得分:4)

通过解压缩存档安装 Tomcat8 中的

,有一个名为“ catalina.properties ”的文件

只需添加

即可在此文件中引入环境变量
my.special.variable=some_value

答案 4 :(得分:3)

有一个tomcat的配置文件,默认情况下位于/dev/tomcat6/tomcat6.conf我相信(查看/etc/init.d/tomcat以查看“TOMCAT_CFG”的值是什么。这是“sourced”{{ 1}}在此文件(.)中,在tomcat启动(或停止,重新启动等)之前,所以如果你添加这行:

. $TOMCAT_CFG

这应该可用于您的Java应用程序。

我知道这是一个老问题,但也许对其他人有用:)

答案 5 :(得分:3)

对于Tomcat7 + Ubuntu:

设置:

  1. 打开/etc/default/tomcat7档案
  2. 添加行somekey=value

    注意:变量的名称不能包含点。

  3. 重启Tomcat:service tomcat7 restart
  4. <强>读:

    System.getenv("somekey");

答案 6 :(得分:1)

如果您想在tomcat中设置环境变量以通过 getEnv 进入,请使用 setenv

即。在tomcat / bin中你有(或应该创建)setenv.sh(或setenv.bat用于шindoшs)并定义

my.var=FOO
OTHERVAR=BOO

set前面加上шindoшs。

答案 7 :(得分:0)

既然您已经向我解释过您使用基于yum的安装(建议使用Red Hat发行版衍生产品),如果您将Tomcat作为守护程序运行,那么您需要设置“export TOMCAT_OPTS = .. 。“/ etc / profile(全局范围)中的命令,或者将它添加到启动Tomcat实例的用户主目录的〜/ .profile或〜/ .bashrc文件中。

答案 8 :(得分:0)

您是否在Eclipse IDE上使用Tomcat?然后你只需要按照以下步骤操作:

  1. 双击tomcat服务器
  2. 打开启动配置
  3. 环境
  4. 新(名称/价值)