Java 工具集教程

jinfo.exe 配置或打印进程VM参数

jinfo.exe 是 JDK 中的一个命令行工具,用于查看或调整 Java 虚拟机(JVM)的配置参数和系统属性。当 Java 应用程序没有指定所有 JVM 参数时,开发人员可以使用 jinfo 来查找某个参数的默认值。在性能调优和故障排查时,可以使用 jinfo 来查看或修改 JVM 的配置参数。

jinfo 工具特点:

(1)实时性:jinfo 可以实时查看 JVM 的配置参数和系统属性。

(2)动态性:虽然并非所有参数都支持动态修改,但 jinfo 可以在运行时修改部分参数并使其立即生效。

命令语法

连接正在运行的进程:

jinfo [option] <pid>

连接到核心文件:

jinfo [option] <executable <core>

连接远程调试服务器:

jinfo [option] [server_id@]<remote server IP or hostname>

命令选项

jinfo 命令支持如下选项:

  • -flag <name>  打印指定虚拟机标志的值

  • -flag [+|-]<name>  启用或禁用指定的虚拟机标记

  • -flag <name>=<value>  将指定的虚拟机标志设置为给定值

  • -flags  打印虚拟机标志

  • -sysprops  打印 Java 系统属性

  • <no option>  打印上述两个选项

  • -h | -help  打印帮助信息

命令示例

(1)查看 JVM 的 PrintGC 参数值,如下:

D:\share_dir\ShareDoc> jinfo -flag PrintGC 21108
-XX:+PrintGC

上面命令将返回 PrintGC 参数的当前值。

(2)下面示例将动态开启 PrintGC 参数,使 JVM 开始打印 GC 日志。如下:

D:\share_dir\ShareDoc> jinfo -flag +PrintGC 21108

注意:并非所有参数都支持动态修改,这里假设 PrintGC 参数支持动态修改。

(3)查看所有 JVM 参数,如下:

D:\share_dir\ShareDoc> jinfo -flags 21108
Attaching to process ID 21108, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.45-b02
Non-default VM flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=3 -XX:InitialHeapSize=264241152 -XX:+ManagementServer -XX:MaxHeapSize=4227858432 -XX:MaxNewSize=1409286144 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88080384 -XX:OldSize=176160768 -XX:+PrintGC -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 
Command line:  -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dmanagement.endpoints.jmx.exposure.include=* -javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2023.1.1\lib\idea_rt.jar=58994:D:\Program Files\JetBrains\IntelliJ IDEA 2023.1.1\bin -Dfile.encoding=UTF-8

该命令将返回所有 JVM 参数的当前值。

(4)查看 Java 系统属性,如下:

D:\share_dir\ShareDoc> jinfo -sysprops 21108
Attaching to process ID 21108, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.45-b02
spring.output.ansi.enabled = always
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.45-b02
sun.boot.library.path = D:\ProgramFilesFree\Java\jdk1.8.0_45\jre\bin
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = ;
java.rmi.server.randomIDs = true
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level = 
sun.java.launcher = SUN_STANDARD
user.script = 
user.country = CN
management.endpoints.jmx.exposure.include = *
...

该命令将返回Java系统属性的当前值。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号