2017-10-17 109 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調用它?