我试图用jcmd VM.set_flag选项进行试验。但遇到一个错误,说只有'可写'标志可以设置“。什么是可写标志?jcmd VM.set_flag,哪些标志是可写的?
让我的PID:
[email protected]:~/javacode$ jcmd -l
6294 Test
6295 jdk.jcmd/sun.tools.jcmd.JCmd -l
试图改变VM标志:
[email protected]:~/javacode$ jcmd 6294 VM.set_flag ConcGCThreads 4
6294:
only 'writeable' flags can be set
[email protected]:~/javacode$ jcmd 6294 VM.set_flag MaxNewSize 1G
6294:
only 'writeable' flags can be set
编辑:工作了管理的标志,下面是成功的命令。
[email protected]:~/javacode$ jcmd 11441 VM.flags -all | grep MinHeapFreeRatio
uintx MinHeapFreeRatio = 40 {manageable} {default}
[email protected]:~/javacode$ jcmd 11441 VM.set_flag MinHeapFreeRatio 45
11441:
Command executed successfully
[email protected]:~/javacode$ jcmd 11441 VM.flags -all | grep MinHeapFreeRatio
uintx MinHeapFreeRatio = 45
VM.set_flag是在Java 9可用经由http://openjdk.java.net/jeps/228,它是jdk9特定选项。不是吗? – Vipin