Nar*_*h J 19 java tomcat web-applications
我正在使用eclipse进行Web应用程序编码.在这个我传递的环境变量,如:
APP_MASTER_PASSWORD及其值的新环境变量.我可以在java代码中访问此值System.getenv("APP_MASTER_PASSWORD").
但是现在我想将这个环境变量传递给tomcat并在应用程序中访问它而不是通过eclipse传递.
那么如何将这样的变量传递给tomcat呢?
我用Google搜索了一下.但我没有得到任何解决方案.
谢谢.
Shi*_*Kai 37
您可以使用setenv.bat或.sh将环境变量传递给Tomcat.
创建CATALINA_BASE/bin/setenv.bat或.sh文件并在其中添加以下行,然后启动Tomcat.
在Windows上:
set APP_MASTER_PASSWORD=foo
在类Unix系统上:
export APP_MASTER_PASSWORD=foo
Ank*_*kit 19
在这种情况下,您应该使用System属性而不是环境变量.编辑JAVA_OPTS的tomcat脚本并添加如下属性:
-DAPP_MASTER_PASSWORD=foo
在你的代码中,写
System.getProperty("APP_MASTER_PASSWORD");
您也可以在Eclipse中执行此操作,而不是JAVA_OPTS,在运行配置中复制VM参数中的行.
<Environment>标记指定的环境条目是JNDI,可以使用InitialContext.lookup进行访问java:/comp/env.您可以使用InitialContext构造函数和应用程序资源文件的environment参数为JNDI指定环境属性.
System.getEnv() 是关于tomcat进程本身的系统环境变量.
要使用bash命令设置环境变量:
export TOMCAT_OPTS=-Dmy.bar=foo
并启动Tomcat:
./startup.sh
要检索System属性的值,请bar使用System.getProperty().System.getEnv()可用于检索环境变量ie TOMCAT_OPTS.
可以通过在tomcat 安装目录的文件夹中创建setenv.bat(windows) 或setenv.sh(unix) 文件来设置环境变量bin。但是,环境变量将无法从您的代码中访问。
系统属性由-Djava 进程的参数设置。您可以在环境变量中定义 java 起始参数JAVA_OPTS。
我的建议是结合这两种机制。在你apache-tomcat-0.0.0\bin\setenv.bat写的:
set JAVA_OPTS=-DAPP_MASTER_PASSWORD=password1
Run Code Online (Sandbox Code Playgroud)
并在您的 Java 代码中写入:
System.getProperty("APP_MASTER_PASSWORD")
Run Code Online (Sandbox Code Playgroud)
对于 Unix 和 Mac 系统,转到 tomcat 文件夹中的 /bin/setenv.sh
添加以下行
export JAVA_OPTS="$JAVA_OPTS -DAPP_MASTER_PASSWORD=mypass"
现在System.getProperty("APP_MASTER_PASSWORD")会回来"mypass"
| 归档时间: |
|
| 查看次数: |
87097 次 |
| 最近记录: |