文章目錄
- Pre
- -XX:+PrintFlagsInitial 列出JVM參數的預設值
- -XX:+PrintFlagsFinal 列出運作程式時生效的值
- -XX:+PrintCommandLineFlags 列出被使用者或者JVM優化設定過的詳細的XX參數的名稱和值
- 列舉附加隐藏參數
- jinfo 檢視正在運作的Java應用程式的擴充參數
-
- jps
- jinfo

Pre
有的時候,想看下自己沒有設定的JVM參數的值, 或者有的時候想看下JVM某個參數的預設值 ,亦或想看下使用者或者JVM修改的JVM參數 ?
咋辦 ?
JVM在1.6.0_14以後提供了幾個參數可以列印出來所有XX參數和對應的值
-XX:+PrintFlagsInitial 表示列印出所有參數選項的預設值
-XX:+PrintFlagsFinal 表示列印出所有參數選項在運作程式時生效的值
執行的話
java -XX:+PrintFlagsInitial
java -XX:+PrintFlagsFinal
-XX:+PrintFlagsInitial 列出JVM參數的預設值
Java誕生了25年+, N多個參數 ,鬼記得住~
我們隻需要直到常用的,會找就可以了。
我這用的1.8.0_181 列舉出了 866個
部分截圖如下
- 第一清單示參數的資料類型
- 第二列是名稱
- 第三列”=”表示第四列是參數的預設值,如果是”:=” 表明了參數被使用者或者JVM指派了
- 第四列為值
- 第五列是參數的類别
”:=” 表明了參數被使用者或者JVM指派了, 也間接證明了Java8預設的垃圾回收器是Parallel + Parallel Old .
-XX:+PrintCommandLineFlags 列出被使用者或者JVM優化設定過的詳細的XX參數的名稱和值
這一步其實就是列出
-XX:+PrintFlagsFinal
的結果中第三列有":="的參數 。
也可以了解為列印指令行參數
-XX:+UnlockDiagnosticVMOptions 解鎖診斷參數
-XX:+UnlockExperimentalVMOptions 解鎖實驗參數
-XX:+UnlockInternalVMOptions 解鎖内部參數
這個就是隐藏副本了 ,願君多留意~
jinfo 檢視正在運作的Java應用程式的擴充參數
當然了 還有其他參數 也可以看
jps + jinfo
[root@artisan ~]# jps --help
illegal argument: --help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
最常用的jps , 檢視PID
輸出更多資訊
jps -v
[root@artisan ~]# jps
5811 kooteam.jar
6043 Jps
[root@artisan ~]# jps -v
5811 kooteam.jar -Xms1024m -Xmx1024m
6054 Jps -Denv.class.path=.:/usr/java/jdk1.8.0_221-amd64/jre/lib:/usr/java/jdk1.8.0_221-amd64/lib:/usr/java/jdk1.8.0_221-amd64/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_221-amd64 -Xms8m
[root@artisan ~]#
[root@artisan ~]# 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
[root@artisan ~]#
[root@artisan ~]# jinfo -flags 5811
Attaching to process ID 5811, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.221-b11
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357892096 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=357892096 -XX:OldSize=715849728 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps
Command line: -Xms1024m -Xmx1024m
[root@artisan ~]#
[root@artisan ~]# jinfo -sysprops 5811
Attaching to process ID 5811, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.221-b11
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.221-b11
sun.boot.library.path = /usr/java/jdk1.8.0_221-amd64/jre/lib/amd64
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = :
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level = unknown
sun.java.launcher = SUN_STANDARD
user.country = US
user.dir = /root
java.vm.specification.name = Java Virtual Machine Specification
java.runtime.version = 1.8.0_221-b11
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = /usr/java/jdk1.8.0_221-amd64/jre/lib/endorsed
line.separator =
java.io.tmpdir = /tmp
java.vm.specification.vendor = Oracle Corporation
os.name = Linux
sun.jnu.encoding = UTF-8
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
sun.nio.ch.bugLevel =
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 3.10.0-123.el7.x86_64
user.home = /root
user.timezone = Asia/Shanghai
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
user.name = root
java.class.path = ./kooteam.jar
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = ./kooteam.jar
java.home = /usr/java/jdk1.8.0_221-amd64/jre
user.language = en
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.X11.XToolkit
java.vm.info = mixed mode
java.version = 1.8.0_221
java.ext.dirs = /usr/java/jdk1.8.0_221-amd64/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /usr/java/jdk1.8.0_221-amd64/jre/lib/resources.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/rt.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/sunrsasign.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jsse.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jce.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/charsets.jar:/usr/java/jdk1.8.0_221-amd64/jre/lib/jfr.jar:/usr/java/jdk1.8.0_221-amd64/jre/classes
java.vendor = Oracle Corporation
com.zaxxer.hikari.pool_number = 1
file.separator = /
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.cpu.isalist =
[root@artisan ~]#