jinfo - Java 配置信息工具

jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。使用 jps -v 命令参数可以查看虚拟机启动时显式指定的参数列表,如果想知道未被显式指定的参数的系统默认值,除了去找资料外,还可以使用 jinfo -flag 命令进行查询。

在 JDK 1.6 或以上版本,也可以使用 java -XX:+PrintFlagsFinal 在程序启动时查看参数默认值,还可以使用 jinfo -sysprops 选项把虚拟机进程的 System.getProperties() 的内容打印出
来。可以使用 jinfo -flag[+|-] name 或者 jinfo -flag name=value 修改一部分运行期可写的虚拟机参数值。下面是一些命令用例:

jinfo -help 查看命令帮助

[root@localhost ~]# jinfo -help
Usage:
    jinfo [option] <pid>
        (to connect to running process)
    jinfo [option] <executable <core>
        (to connect to a core file)
    jinfo [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -flags               to print VM flags
    -sysprops            to print Java system properties
    <no option>          to print both of the above
    -h | -help           to print this help message

jinfo -flag SurvivorRatio 19863 查看进程号为 19863 的 Java 程序新生代中伊甸园区与一个幸存区的空间比例

[root@localhost ~]# jinfo -flag SurvivorRatio 19863
-XX:SurvivorRatio=3  

文章摘自《深入理解Java虚拟机》第二版 周志明著,仅作为学习记录,书籍中用到的案例代码及描述有部分修改,但未改变原意。