我试图以编程方式从Java应用程序中检索VM参数。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无用。
我做更多的研究,但我一直没能找到一个替代,以获取VM参数在他们的Java 6中(感谢让 - 菲利普全部让我知道它在Java中的成功之路7)。
从应用程序中获取VM参数的另一种方法是什么?
出于兴趣,什么是在索引'[2]' ? –
@GregKopff我的不好,实际上有索引2和3的对象,我不小心从问题中忽略了 – Vulcan