如何获取传入Java启动的-D参数

vin*_*ray 5 java properties

我将某些-D环境变量作为VM选项传递给Java服务器应用程序.

我需要从应用程序中检索这些变量,但是当我使用System.getProperties()时,我得到了所有这些,以及在操作系统级别定义的所有系统属性,我对此不感兴趣.

有没有办法发现-D参数?

sol*_*4me 3

您可以使用RuntimeMXBean(Java虚拟机运行时系统的管理接口)来获取它,如下所示

RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
List<String> args = bean.getInputArguments();
Run Code Online (Sandbox Code Playgroud)

请注意,getInputArguments() 返回传递给 Java 虚拟机的输入参数,其中不包括 main 方法的参数。如果 Java 虚拟机没有输入参数,则此方法返回一个空列表。