我像这样开始我的java程序(Test.java):
java -DMyParam=2 Test
我可以使用System.setProperty()在代码中更改此内容,但是有没有更改MyParam属性值的命令行工具?
我尝试使用VM.set_flag但得到以下错误,可能是因为set_flag可以设置标志而不是系统属性。
XXX@XXX-Air:~/javacode$ jcmd 11441 VM.set_flag MyParam 1
11441:
flag MyParam does not exist
答案 0 :(得分:0)
这似乎不太可能。
您可以使用jinfo(https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jinfo.html)更改一些可管理的JVM标志,但该命令也是实验性的,根据Oracle的说法,下一版本可能不再支持该命令。
答案 1 :(得分:0)
不,不要认为这是可能的。如果这是您想要的方式,您可能必须自己公开该功能。也许创建一个JMX bean并用jmxterm调用它?