生成配置信息。它可以用来查看正在运行的java应用程序的扩展参数(JVM中-X标示的参数),也支持在运行时修改部分参数。 如遇到Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can’t attach to the process 错误,可尝试使用root权限。
概要
jinfo [option] pid
jinfo [option] executable core
jinfo [option] [servier-id*] *remote-hostname-or-IP
option
命令行选项。详见Options 。
pid
目标java进程id。使用jps命令可以获得本机Java进程列表。
executable
从核心文件产生的java可执行命令。
core
要打印配置信息的核心文件。
remote-hostname-or-IP
远程debug服务器的主机名或IP地址。详见jsaebugd。
server-id
多个调试服务器在同一个远程主机上运行时使用的可选唯一标识。
描述 jinfo 命令打印一个特定Java进程或核心文件或远程调试服务器的Java配置信息。配置信息中包含了Java系统属性值和JVM命令行标志(flag)。如果进程运行在64位虚拟机上,则可能需要使用-J-d64 选项(jinfo -J-d64 -sysprops pid)。
该工具可能在未来的版本被移除。
Options no-option
打印命令行标志和系统属性值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 -> % sudo jinfo 3431 Attaching to process ID 3431, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.66-b17 Java System Properties: java.runtime.name = Java(TM) SE Runtime Environment ... sun.cpu.isalist = VM Flags: Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=268435456 -XX:MaxDirectMemorySize=100663296 -XX:MaxHeapFreeRatio=100 -XX:MaxHeapSize=268435456 -XX:MaxNewSize=134217728 -XX:MetaspaceSize=62914560 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=134217728 -XX:OldSize=134217728 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:SurvivorRatio=10 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC Command line: -Xms256m -Xmx256m -XX:MaxDirectMemorySize=96m -XX:MetaspaceSize=60m -Xmn128m -XX:SurvivorRatio=10 -Xloggc:logs/gc.log
-flag name
打印特定标志的名称和值。
1 2 -> % jinfo -flag MaxHeapFreeRatio 3431 -XX:MaxHeapFreeRatio=100
-flag [+|-]name
启用或关闭命令行标志(布尔型)。
1 2 3 4 5 -> % jinfo -flag HeapDumpOnOutOfMemoryError 3431 -XX:-HeapDumpOnOutOfMemoryError -> % jinfo -flag +HeapDumpOnOutOfMemoryError 3431 -> % jinfo -flag HeapDumpOnOutOfMemoryError 3431 -XX:+HeapDumpOnOutOfMemoryError
-flag name=value
设定命令行标志的值。
1 2 3 4 5 -> % jinfo -flag MaxHeapFreeRatio 3431 -XX:MaxHeapFreeRatio=100 -> % jinfo -flag MaxHeapFreeRatio=80 3431 -> % jinfo -flag MaxHeapFreeRatio 3431 -XX:MaxHeapFreeRatio=80
-flags
打印JVM的命令行标志。
1 2 3 4 5 6 7 -> % sudo jinfo -flags 3431 Attaching to process ID 3431, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.66-b17 Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=268435456 -XX:MaxDirectMemorySize=100663296 -XX:MaxHeapSize=268435456 -XX:MaxNewSize=134217728 -XX:MetaspaceSize=62914560 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=134217728 -XX:OldSize=134217728 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:SurvivorRatio=10 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC Command line: -Xms256m -Xmx256m -XX:MaxDirectMemorySize=96m -XX:MetaspaceSize=60m -Xmn128m -XX:SurvivorRatio=10 -Xloggc:logs/gc.log
-sysprops
打印Java系统属性值。
1 2 3 4 5 6 7 8 9 10 11 12 -> % sudo jinfo -sysprops 3431 Attaching to process ID 3431, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.66-b17 java.runtime.name = Java(TM) SE Runtime Environment java.vm.version = 25.66-b17 ... java.vendor.url.bug = http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little sun.cpu.isalist =
-h|-help
打印帮助信息。
提示: 可通过java -XX:+PrintFlagsFinal -version|grep manageable 打印出哪些标志位可被动态修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 -> % java -XX:+PrintFlagsFinal -version|grep manageable intx CMSAbortablePrecleanWaitMillis = 100 {manageable} intx CMSTriggerInterval = -1 {manageable} intx CMSWaitDuration = 2000 {manageable} bool HeapDumpAfterFullGC = false {manageable} bool HeapDumpBeforeFullGC = false {manageable} bool HeapDumpOnOutOfMemoryError = false {manageable} ccstr HeapDumpPath = {manageable} uintx MaxHeapFreeRatio = 100 {manageable} uintx MinHeapFreeRatio = 0 {manageable} bool PrintClassHistogram = false {manageable} bool PrintClassHistogramAfterFullGC = false {manageable} bool PrintClassHistogramBeforeFullGC = false {manageable} bool PrintConcurrentLocks = false {manageable} bool PrintGC = false {manageable} bool PrintGCDateStamps = false {manageable} bool PrintGCDetails = false {manageable} bool PrintGCID = false {manageable} bool PrintGCTimeStamps = false {manageable} java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
参考: