jvm.options IBM LIBERTY

bmk*_*977 1 websphere-liberty

我在网上搜索了很多,几乎所有链接都说在jvm.options中定义JVM自定义变量也将它放在$ {server.config.dir} /jvm.options上.例如我添加了一个名为-DAPP_ENV = PROD的变量.但是这在服务器启动后变为NULL.

任何的想法?

小智 6

看起来您想要定义一个环境变量,因此您有两个选择.

1.使用环境变量

在这种情况下,您可以定义一个环境变量(如$ PATH)并将其加载到您的应用程序中.请注意,这不是JVM参数,它将在bin/server用于启动服务器的shell命令中设置.

在文件中:${server.config.dir}/server.env
添加以下行:APP_ENV=PROD
使用以下命令访问该值: System.getenv("APP_ENV");- >PROD

2.使用System属性

这就是你要做的,所以我不确定它为什么不适合你,但是这里是如何:

在文件中:${server.config.dir}/jvm.options
添加以下行:-DAPP_ENV=PROD
使用以下命令访问该值: System.getProperty("APP_ENV");- >PROD

请注意,在这两种情况下,这些值都是在服务器启动时设置的,并且它们不会动态更改(大多数Liberty配置是动态的).JVM选项和环境在启动脚本期间获取并设置,因此如果要更改任何一个,则需要重新启动.

我个人的建议是去server.env路线 - 它更通用,(对我来说)感觉更合适,因为你试图影响过程的执行环境,而不是定义JVM的行为或配置.