簡體   English   中英

TOMCAT_OPTS,環境變量和System.getEnv()

[英]TOMCAT_OPTS, environment variable and System.getEnv()

我使用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時,它在本地運行但不在我的服務器上運行...

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

使用-Dfoo=bar調用Java時,不設置環境變量:傳遞系統屬性。 使用System.getProperty獲取foo的值。

我終於在CATALINA_HOME中找到了一個名為tomcat6.conf的配置文件。 我將導出my.var = foo添加到文件末尾,System.getenv(“my.var”)現在返回值...

惡夢...

如果您使用的是tomcat7和unbuntu操作系統,則可以編輯/ etc / default / tomcat7文件,只需添加一行yourvar = yourvalue就可以了。

如下:

# 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"

Tomcat8中通過解壓縮歸檔安裝,有一個名為“ catalina.properties ”的文件

您只需添加即可在此文件中引入環境變量

my.special.variable=some_value

對於Tomcat7 + Ubuntu:

組:

  1. 打開/etc/default/tomcat7文件
  2. 添加一行somekey=value

    注意:變量的名稱不能包含點。

  3. 重啟Tomcat: service tomcat7 restart

讀:

System.getenv("somekey");

有一個tomcat的配置文件,默認情況下位於/dev/tomcat6/tomcat6.conf我相信(查看/etc/init.d/tomcat以查看“TOMCAT_CFG”的值是什么。這是“sourced” .這個文件( . $TOMCAT_CFG )在tomcat啟動(或停止,重啟等)之前,所以如果你添加這行:

MY_VAR=somevalue

這應該可用於您的Java應用程序。

我知道這是一個老問題,但也許對其他人有用:)

如果要在tomcat中設置環境變量以通過getEnv進入 ,請使用setenv

即tomcat的/ bin中你有(或應該創建) setenv.sh (或setenv.bat為шindoшs)和定義

my.var=FOO
OTHERVAR=BOO

在它前面set шindoшs。

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

  1. 雙擊tomcat服務器
  2. 打開啟動配置
  3. 環境
  4. 新(名稱/價值)

既然您已經向我解釋過您正在使用基於yum的安裝(建議使用Red Hat發行版),如果您將Tomcat作為守護程序運行,那么您需要設置“export TOMCAT_OPTS = ...”命令在/ etc / profile(對於全局范圍)中,或將其添加到啟動Tomcat實例的用戶的home中的〜/ .profile或〜/ .bashrc文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM