jps 和 jinfo 配合可快速查看 Java 进程 PID 及实时 JVM 参数:jps -v 显示启动参数,jinfo -flags 查全部配置,jinfo -flag 查单个参数,jinfo -flag ± 动态开关可管理参数。

直接用 jps 找进程 PID,再用 jinfo 查参数,两步就能看清 Java 进程在跑什么、用了哪些 JVM 配置。
用 jps 快速定位 Java 进程
jps 是 JDK 自带的轻量级进程查看工具,不用登录服务器或翻日志,一条命令就能列出当前机器上所有 Java 进程。
- jps:默认输出 PID 和主类名(或 jar 名),适合快速扫一眼有哪些 Java 程序在运行
- jps -l:显示完整类名或 jar 绝对路径,能区分同名但不同版本的应用
-
jps -v:直接看到 JVM 启动参数(如
-Xms512m -Xmx2g -XX:+UseG1GC),排查配置是否生效最常用 -
jps -m:显示传给 main 方法的参数,比如 Spring Boot 的
--server.port=8081这类启动参数 -
jps -q:只输出 PID 列表,方便配合其他命令批量处理(如
jps -q | xargs -I{} jinfo -flags {})
用 jinfo 查看和验证 JVM 参数
jinfo 专用于读取运行中 JVM 的实时配置,不需要重启应用,特别适合线上环境快速确认参数是否按预期加载。
-
jinfo -flags
:列出所有 JVM 参数(含默认值和显式设置),一眼看出 GC 策略、堆大小、调试开关等是否正确 -
jinfo -flag
:查单个参数值,例如jinfo -flag MaxHeapSize 12345返回字节数,可换算成 MB/GB -
jinfo -sysprops
:查看系统属性,包括 java.version、file.encoding、user.dir等运行时环境信息 -
jinfo -flag +
或 jinfo -flag - :动态开启/关闭部分可管理参数(如+PrintGC),适合临时开启 GC 日志做诊断
典型组合操作流程
日常排查基本按这个顺序走:
立即学习“Java免费学习笔记(深入)”;
- 先运行
jps -v,找到目标进程 PID,并确认关键参数(如堆大小、GC 类型)已出现在输出里 - 如果
jps -v没显示某些参数(比如被脚本覆盖或未显式指定),再用jinfo -flags <pid></pid>补全查看,它会包含 JVM 默认值 - 怀疑某个参数没生效?用
jinfo -flag <pid></pid>单独查,避免被大量输出干扰 - 需要临时加日志辅助分析?执行
jinfo -flag +PrintGCDetails <pid></pid>,立刻生效,不用重启
注意事项
不是所有参数都能动态修改,jinfo 只能调整标记为 manageable 的 JVM flag。像 -Xms、-Xmx 这类内存初始值属于静态参数,jinfo 可以查,但不能改;而 -XX:+PrintGC、-XX:+DisableExplicitGC 等则支持运行时开关。执行前建议先用 jinfo -flags <pid></pid> 看一眼参数状态,带 = 号的是可设值参数,带 +/- 号的是开关型参数。


















