2017-10-17 95 views
0

我开始我的java程序(Test.java)这样的更改系统属性:如何使用命令行选项

java -DMyParam=2 Test 

我可以在代码中使用System.setProperty(改变这个),但没有任何命令行工具来更改MyParam属性的值?

我尝试使用VM.set_flag,但得到低于错误,可能是因为set_flag可以设置标志而不是系统属性。

[email protected]:~/javacode$ jcmd 11441 VM.set_flag MyParam 1 
11441: 
flag MyParam does not exist 

回答

0

这似乎不可能。

您可能可以使用jinfo(https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jinfo.html)更改一些可管理的JVM标志,但该命令也是实验性的,可能在下一个版本中不再受支持。

+1

更好的设置vm标志的方式IMO会是jcmd VM.set_flag, “jcmd 11441 VM.set_flag MinHeapFreeRatio 45” – Vipin

+0

Yah! jinfo似乎已被弃用! –

0

不,不要认为这是可能的。如果这是您想要的方式,您可能必须自己公开该功能。也许创建一个JMX bean并用jmxterm调用它?