最直接方式是用jps -v查启动参数,再用jinfo -flags <pid>查实际生效的所有JVM标志,包括显式设置值和默认值;jinfo -sysprops可查系统属性;java -XX:+PrintCommandLineFlags用于启动前预览生效的非默认参数。

要查看正在运行的 Java 进程所使用的 JVM 参数,最直接、可靠的方式是结合 jps 和 jinfo 两个 JDK 自带命令配合使用。不需要重启应用,也不依赖外部监控系统。
先找进程 ID:用 jps -v 查看启动时的 JVM 参数
jps 是轻量级进程探查工具,-v 选项能直接打印出该进程启动时显式指定的 JVM 参数(如 -Xms2g -Xmx4g -XX:+UseZGC 等),非常直观:
-
jps -v:列出所有 Java 进程及其完整启动参数 -
jps -lv:同时显示主类/JAR 路径 + JVM 参数,便于定位具体服务 - 注意:若进程启动时加了
-XX:-UsePerfData,jps就无法发现它
再查完整配置:用 jinfo -flags 查看全部 JVM 标志
jinfo -flags <pid> 会输出该 JVM 实际生效的所有参数,包括你手动设置的和 JVM 自动推导/补全的默认值(比如未设 -XX:MaxGCPauseMillis,但 G1 收集器仍会启用自适应策略并写入对应 flag):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 输出中带
=的是显式设置值(如maxheapsize=4294967296) - 带
//注释的是默认值(如useg1gc // {product}表示默认启用 G1) - 不支持动态修改的静态参数(如
-XX:+UnlockExperimentalVMOptions)也可能不显示
补充验证:jinfo -sysprops 查看系统属性
有些关键行为由系统属性控制(如 file.encoding、user.timezone、spring.profiles.active),这些虽不属于 JVM 参数,但会影响运行表现:
立即学习“Java免费学习笔记(深入)”;
-
jinfo -sysprops <pid>输出等价于代码中System.getProperties() - 可快速确认环境变量是否被正确注入(例如
java.library.path是否包含所需 native 库路径)
启动前预览:java -XX:+PrintCommandLineFlags
这个命令不是查运行中进程,但在调试或部署脚本中非常实用——它模拟 JVM 启动逻辑,只输出「实际生效的非默认参数」:
-
java -XX:+PrintCommandLineFlags -version:立即看到当前 JDK 默认启用哪些高级选项(如+UseCompressedOops、+UseParallelGC) - 比
-XX:+PrintFlagsFinal更简洁,适合快速核对基础行为

















