文章目录

  • 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赋值了
  • 第四列为值
  • 第五列是参数的类别

-XX:+PrintFlagsFinal 列出运行程序时生效的值


”:=” 表明了参数被用户或者JVM赋值了, 也间接证明了Java8默认的垃圾回收器是Parallel + Parallel Old .


-XX:+PrintCommandLineFlags 列出被用户或者JVM优化设置过的详细的XX参数的名称和值

这一步其实就是列出 -XX:+PrintFlagsFinal的结果中第三列有":="的参数 。

也可以理解为打印命令行参数


列举附加隐藏参数

-XX:+UnlockDiagnosticVMOptions  解锁诊断参数-XX:+UnlockExperimentalVMOptions   解锁实验参数-XX:+UnlockInternalVMOptions 解锁内部参数

这个就是隐藏副本了 ,愿君多留意~


jinfo 查看正在运行的Java应用程序的扩展参数

当然了 还有其他参数 也可以看

jps + jinfo

jps

[root@artisan ~]# jps --help
illegal argument: --help
usage: jps [-help]jps [-q] [-mlvV] [<hostid>]Definitions:<hostid>:      <hostname>[:<port>]

最常用的jps , 查看PID

输出更多信息

jps -v

【demo】

[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 ~]# 

jinfo

[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 ~]# 

【查看jvm的参数】

[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 ~]# 

【查看java系统参数】

[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 ~]# 

JVM - 列出JVM默认参数及运行时生效参数相关推荐

  1. JVM学习(七):运行时数据区(精讲)

    目录 一.运行时数据区概述 1.1 概述 1.2 运行时数据区中的GC和OOM 二.程序计数器(PC寄存器,Program Counter Register) 2.1 介绍 2.2 作用 2.3 特点 ...

  2. java 获取运行时参数,Java8增强反射可以在运行时获取参数名

    技术公众号:Java In Mind(Java_In_Mind),欢迎关注! 原文:Java8增强反射可以在运行时获取参数名 介绍 在JDK增强意见:JPE 118:Access to Paramet ...

  3. Android 12.0首次开机默认授予app运行时权限(去掉运行时授权弹窗)

    目录 1.概述 2.首次开机默认授予app运行时权限(去掉运行时授权弹窗)的解决方案的核心类

  4. 面试回答,JVM内存模型/内存空间:运行时数据区

    发布于个人公众号,打开微信,搜索MelodyJerry即可 本文由作者原文 [JVM|内存模型] Java虚拟机的内存模型?也就这7个而已 修改而来,可点击左下角阅读原文. JVM内存模型/内存空间 ...

  5. [JVM]了断局:常量池 VS 运行时常量池 VS 字符串常量池

    一.前言 最近在看JVM, 常量池, 运行时常量池,字符串常量池 这个看的有点懵. 整理一下. class常量池 是在编译的时候每个class都有的. 在编译阶段,存放的是常量的 符号引用 .    ...

  6. debug —— set args调试命令(作为程序运行时的参数)

    debug调试 -- set  args 作为程序运行时候的参数 set args作为程序运行时参数: 源代码: 1 #include <stdio.h>2 int main(int ar ...

  7. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  8. Android10 系统默认给app运行时权限

    1.系统app系统app的权限默认开启,大家应该都知道是修改DefaultPermissionGrantPolicy.java.frameworks/base/services/core/java/c ...

  9. 最全的 JVM 面试知识点(一):运行时数据区

    转自: https://blog.csdn.net/keets1992/article/details/92089754 不是码农,不会敲代码的她,却最懂程序员!| 人物志: https://blog ...

最新文章

  1. D.Digits 思维dp 取log乘积变成加法
  2. 部分小区业主抵制人脸识别:我不在家,你都清楚
  3. 【IM】关于条件随机场CRF的理解
  4. android如何编译lame,Android 编译 Lame 库心路历程
  5. 通用mapper笔记
  6. C语言enum(枚举)、指针、函数指针
  7. python2异步编程_Python 异步编程入门
  8. html5 coverflow,使用FancyCoverFlow实现3D无限循环切换视图
  9. ZZULIOJ 1066:字符分类统计
  10. 调试maven源代码
  11. JavaScript中DOM(第二天)
  12. zencart 对首页静态化处理
  13. 深度解析,AI如何让创新变得更简单
  14. python 机器翻译免费接口调用
  15. 关于oracle的递归查询
  16. 推荐系统相关顶会整理
  17. 北京时间与UTC时间转换
  18. 接口测试中抓包工具的使用-charles
  19. ISMS信息安全风险评估与等保测评的主要活动内容
  20. html做一个甜品登录注册页面,html西式甜品网制作.docx

热门文章

  1. 创智播客微服务_【传智播客】JavaEE在职加薪课
  2. Oralce的图形化界面----plsql developer涉及到的知识点总结
  3. 从一个提问引发到你是怎么看待编程语言是一种工具这句话的?【笔记自用】
  4. ubuntu查看OpenCV的版本和安装的库
  5. zip() python
  6. 强化学习Reinforcement Learning
  7. 论文笔记:Hankel Matrix Factorization for Tagged Time Series to Recover Missing Values during Blackouts
  8. 博弈论笔记:谈判与讨价还价
  9. 深度神经网络(DNN)模型与前向传播算法
  10. python之获取目录下的文件名