如何在tomcat中设置自定义环境变量?

时间:2020-05-12 10:11:24

标签: java tomcat environment-variables java-opts

我的程序中几乎没有键值对变量,现在已经对其进行了硬编码。

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);

这些是我正在使用的打印语句。

1 个答案:

答案 0 :(得分:0)

这绝对是一个粗略的回答,因为在我的案例中,堆栈中所有已批准的答案都失败了。我尝试使用Setenv.bat & Catalina.bat filesCATALINA_HOME/conf甚至在tomcat的variables.conf文件夹中创建一个名为environment variable.的配置文件,声明所有变量(包括键和值),我需要以JVM Settings

Pass user defined environment variable to tomcat

以上链接中的所有这些方法均失败,最后我使用Tomcat的Append to JVM Parameters尝试了此方法

  1. 打开窗口->>首选项->> Tomcat->> JVM设置

    System.getProperty()中,添加需要用作环境变量的变量(可以在整个项目中使用KEY_STORE_PASSWORD= KEY_STORE_ALGORITHM= KEY_STORE= KEY_STORE_PROTOCOL= 进行访问)。

示例如下图所示:

enter image description here

这里我的变量是:

-D followed by variable [equals to] variable value.

可以作为-DKEY_STORE_PASSWORD=password

写入JVM设置

例如:enum

如有任何疑问,请询问。