好的,以下是对 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 程序
⚙️ 应急响应与 jstackjmapjinfo 联合使用,定位 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 应急响应工具链。