为什么我们需要用前缀JVM参数-D
如在命令行中运行的罐子是什么时候?例如
java -jar -DmyProp="Hello World" myProgram.jar
用于运行myProgram.jar
该系统参数myProp
。那么,为什么领先-D
?为什么不能爪哇建筑师让我们简单地做:
java -jar -myProp="Hello World" myProgram.jar
我希望的不仅仅是一个答案:“因为这事情是这样的”。
奖金问题:为什么要信-D
,而不是任何其他字母,它代表什么?
注意:这个问题问为什么有必要用“d”,或任何其他字母对于这个问题,摆在首位。它与特定的字母“d”比任何其他字母的选择不太关注,尽管这是问的奖金问题。
奖金的问题在这里有一个答案:在java中-D什么是d代表什么?。
为什么不能爪哇建筑师让我们简单地做:
java -jar -myProp="Hello World" myProgram.jar
它可以工作,但今天假设在接下来的Java版本-myProp
的说法被引入作为一个JVM选项。
如何区分你-myProp
从-myProp
JVM选项?没门。
因此,存在明显的理由使用-D
来定义系统属性。
至于其他的例子,而不是-myProp
假设你计划依赖于-client
系统特性。
它不会运行:
java -jar -client="davidxxx" myProgram.jar
你将有一个JVM错误,如:
无法识别的选项:-client = davidxxx
因为-client
是没有预期值的JVM标准的选择。
但是如果你使用-D-client
,现在是罚款,在这里-Dclient
被定义为是从不同的系统性能-client
标准JVM选项:
java -jar -D-client="davidxxx" myProgram.jar
或同时使用:
java -jar -client -D-client="davidxxx" myProgram.jar
百尺竿头更进一步,不是所有的JVM参数开始-D
。但他们大多有一个前缀(-D
,-X
,-XX
),允许在某种方式来定义命名空间。
你有不同类别的JVM参数:
1.标准选项(-D
但不是唯一的)。
这些是由JVM的所有实现支持最常用的选项。
您可以使用-D
指定的系统属性,但大多没有任何前缀-verbose
,-showversion
等了...
2.非标准选项(前缀-X
)
这些选项是特定的Java HotSpot虚拟机通用选项。
例如:-Xmssize
,-Xmxsize
3.高级运行选项(前缀-XX
)
这些选项控制Java HotSpot虚拟机运行时的行为。
4.先进的JIT编译器选项(前缀-XX
)
这些选项控制只是在实时(JIT)编译由Java HotSpot虚拟机进行动态。
5.高级服务性选项(前缀-XX
)
这些选项提供了收集系统信息,并进行大量的调试的能力。
6.先进的垃圾回收选项(前缀-XX
)
这些选项控制垃圾回收(GC)是由Java HotSpot虚拟机执行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句