[英]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
組:
/etc/default/tomcat7
文件 添加一行somekey=value
注意:變量的名稱不能包含點。
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? 然后你只需要按照以下步驟操作:
既然您已經向我解釋過您正在使用基於yum的安裝(建議使用Red Hat發行版),如果您將Tomcat作為守護程序運行,那么您需要設置“export TOMCAT_OPTS = ...”命令在/ etc / profile(對於全局范圍)中,或將其添加到啟動Tomcat實例的用戶的home中的〜/ .profile或〜/ .bashrc文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.