有没有更好的方法可以从命令行打印系统属性?因为我们可以设置属性例如

 java  -D<name>=<value>  //set a system property

不用写课就能做到吗?

如果不可能,为什么不能/可行/好的从命令行进行呢?

最佳答案

您可以在Hotspot JVM 1.7版及更高版本中使用-XshowSettings标志(1.6版不支持):

java -XshowSettings:properties -version

自2010年底以来,OpenJDK就一直支持该标志。

出现在http://marxsoftware.blogspot.de/2016/02/hotspot-jvm-XshowSettings.html

编辑2016年12月14日

Oracle JVM附带了jcmd工具,该工具可让您查看正在运行的JVM中存在的标志。看到:

https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

对于此用例,您可以使用:
jcmd <pid> VM.system_properties

但是,还有许多其他有用的命令。例如:
jcmd <pid> VM.flags
jcmd <pid> VM.command_line
jcmd <pid> GC.run

10-07 17:10