我将某些-D环境变量作为VM选项传递给Java服务器应用程序.
我需要从应用程序中检索这些变量,但是当我使用System.getProperties()时,我得到了所有这些,以及在操作系统级别定义的所有系统属性,我对此不感兴趣.
有没有办法发现-D参数?
您可以使用RuntimeMXBean(Java虚拟机运行时系统的管理接口)来获取它,如下所示
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
List<String> args = bean.getInputArguments();
Run Code Online (Sandbox Code Playgroud)
请注意,getInputArguments() 返回传递给 Java 虚拟机的输入参数,其中不包括 main 方法的参数。如果 Java 虚拟机没有输入参数,则此方法返回一个空列表。