好的,以下是对 Java进程状态信息获取工具 jps
的详细整理,适合用于 Java 应急响应、调试排查或教学文档等用途:
Java 可执行命令(十五):jps
— Java进程状态信息获取工具
📌 简介
jps
(Java Virtual Machine Process Status Tool)是 JDK 提供的一个命令行工具,用于显示当前主机上所有 Java 进程的 进程ID(PID)及其主类名(Main Class)。它是进行 Java 应急响应、性能排查、进程识别等操作的首选工具之一。
🧰 功能特点
- 查看本机运行的所有 Java 进程
- 获取每个进程的主类名、JAR 路径或启动类
- 支持显示传入的
main()
方法参数 - 可显示进程的 JVM 参数
🔧 常用命令格式
jps [ options ] [ hostid ]
常用选项说明:
选项 | 含义 |
---|---|
-q | 只显示进程ID,不显示类名等信息 |
-l | 显示主类的全限定名或JAR路径 |
-v | 显示传递给JVM的参数 |
-m | 显示传递给 main() 方法的参数 |
📎 示例演示
✅ 查看当前所有 Java 进程:
jps
输出示例:
12345 HelloWorld
23456 Jps
34567 org.apache.catalina.startup.Bootstrap
✅ 显示主类的全限定名或启动的 JAR 包路径:
jps -l
输出示例:
12345 com.example.app.Main
23456 sun.tools.jps.Jps
34567 /usr/local/tomcat/bin/bootstrap.jar
✅ 显示 JVM 启动参数:
jps -v
输出示例:
12345 HelloWorld -Xms256m -Xmx1024m
✅ 显示传给 main 方法的参数:
jps -m
输出示例:
12345 HelloWorld arg1 arg2
🎯 实际用途场景
场景 | 描述 |
---|---|
🧪 本地开发排查 | 快速识别正在运行的 Java 程序 |
⚙️ 应急响应 | 与 jstack , jmap , jinfo 联合使用,定位 Java 异常进程 |
🔐 安全检测 | 检查是否存在可疑的 Java 应用或恶意 JAR 启动进程 |
📊 性能调优入口 | 结合 PID 获取内存快照、线程堆栈等数据 |
🔄 常用联动命令组合
# 获取某进程的线程堆栈信息
jstack <PID>
# 获取内存映像
jmap -heap <PID>
# 查看JVM参数
jinfo <PID>
示例:
jps -l
jstack 12345 > thread_dump.log
⚠️ 注意事项
jps
只能查看当前用户权限下的 Java 进程(除非使用 sudo)。- 默认只查看本地进程;远程需配置 RMI,较少使用。
- Windows 上也支持,位于
%JAVA_HOME%\bin\jps.exe
。
📘 参考资料
需要我进一步介绍 jps
和 jstack/jmap/jinfo
等工具的联动使用示例吗?可帮助你构建一个完整的 Java 应急响应工具链。
发表回复