一、参数
-XX:+PrintFlagsInitial | 查看jvm参数的初始值 | |
-XX:+PrintFlagsFinal | 查看jvm参数的最终值 | 因为jvm某些参数的值在运行过程中会发生变化 |
-XX:+UnlockExperimentalVMOptions | 解锁实现参数 | jvm并不是所有参数都可直接赋值的,需要用这个参数解锁后赋值 |
-XX:+UnlockDiagnosticVMOptions | 解锁诊断参数 | 某些参数也是需要解锁后才能赋值 |
-XX:+PrintCommandLineFlags | 打印命令行参数 |
二、使用
1.java -XX:+PrintFlagsFinal -version 查看当前这个命令进程的jvm参数
输入上面命令,可以出来很多参数,由于参数太多,可以把它重定向到文件里面查看。
java -XX:+PrintFlagsFinal -version >> a.txt
参数 = 值 :这种表示是jvm默认的值
参数 :=值 :这种表示被修改过的值,有可能是用户直接修改或者是tomcat的配置里面配的值修改的。
jvm 里面有很多参数,这里只截了几个参数的图。
2.jps命令
jps命令功能和linux的ps命令一样的,只是jps是只查看java进程的,-l表示显示完整的类。包括包名。
另外jps还有其他参数https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html#CHDCGECD
这个官方地址有描述了每个参数的作用。
3.jinfo命令
jinfo -flags java进程pid : 查看java进程的jvm参数。
jinfo -flag -XX:MaxHeapSize java进程pid:查看某个进程的某一个参数(最大堆内存)