我正在尝试以编程方式从 Java 应用程序中检索 VM 参数。
在做了一些研究之后,我发现了一个似乎是完美的解决方案:
ManagementFactory.getRuntimeMXBean().getInputArguments();
但是,当参数的内容包含空格字符时,参数将被拆分,并且列表中只出现该空格字符。
使用示例 VM 参数-Xmx1024mb -javaagent:"C:/Users/Thompson Main/Documents/app.jar"
,将返回以下列表:
[0] -> -Xmx1024mb
[1] -> -javaagent:C:/Users/Thompson
[2] -> Main/Documents/app.jar
[3] -> -Dfile.encoding=Cp1252
第二个 VM 参数由于包含不可避免的空格而被切断,我不能假设我的所有用户在文件路径中都缺少空格字符。在我看来,这个错误使 ManagementFactory 和 RuntimeMXBean 无用。
我做了更多的研究,但我无法找到一种替代的、成功的方法来在 Java 6 中完整地检索 VM 参数(感谢 Jean-Philippe 让我知道它在 Java 7 中有效)。
从应用程序中获取 VM 参数的另一种方法是什么?