我的程序中几乎没有键值对变量,现在已经对其进行了硬编码。
String pswd = StringUtils.defaultString(System.getProperty("KEY_STORE_PASSWORD"), "password");
String algorithm = StringUtils.defaultString(System.getProperty("KEY_STORE_ALGORITHM"), "SunX509");
我需要动态加载这些值。为此,我需要将这些值设置为Tomcat中的环境变量(自定义)。我正在使用Tomcat插件运行该应用程序。我尝试使用setenv.bat文件概念。我在其中添加了以下行。
set KEY_STORE_PASSWORD=password
但是我没有得到它的日志。我使用了另一种方法
set JAVA_OPTS=-DKEY_STORE_PASSWORD=password
我添加了这一行,尝试了,但是什么也没做...除了在控制台中显示null以外。我不知道什么是JAVA_OPTS,也没有为Tomcat添加任何系统环境变量。我应该先添加它们吗?我们需要添加哪些变量作为Tomcat的环境变量? JAVA_OPTS是其中之一吗?
我可以创建自定义环境变量而不创建它们吗?
String pswd1=System.getProperty("KEY_STORE_PASSWORD");
logger.info("pswd1 from tomcat"+ pswd1);
这些是我正在使用的打印语句。
答案 0 :(得分:0)
这绝对是一个粗略的回答,因为在我的案例中,堆栈中所有已批准的答案都失败了。我尝试使用Setenv.bat & Catalina.bat files
和CATALINA_HOME/conf
甚至在tomcat的variables.conf
文件夹中创建一个名为environment variable.
的配置文件,声明所有变量(包括键和值),我需要以JVM Settings
以上链接中的所有这些方法均失败,最后我使用Tomcat的Append to JVM Parameters
尝试了此方法
打开窗口->>首选项->> Tomcat->> JVM设置
在System.getProperty()
中,添加需要用作环境变量的变量(可以在整个项目中使用KEY_STORE_PASSWORD=
KEY_STORE_ALGORITHM=
KEY_STORE=
KEY_STORE_PROTOCOL=
进行访问)。
示例如下图所示:
这里我的变量是:
-D followed by variable [equals to] variable value.
可以作为-DKEY_STORE_PASSWORD=password
例如:enum
如有任何疑问,请询问。