Java JPS命令使用指南 #

什么是JPS #

JPS(Java Virtual Machine Process Status Tool)是Java开发工具包(JDK)中提供的一个命令行工具,用于列出当前系统中所有正在运行的Java虚拟机(JVM)进程。它是Java诊断工具链中的基础工具之一,能够快速获取系统中Java进程的基本信息。

JPS的功能和用途 #

JPS主要用于:

  • 快速查看当前系统中运行的Java进程
  • 获取Java进程的进程ID(PID)
  • 查看Java进程的主类名称或JAR文件名
  • 检查Java进程的启动参数

JPS的基本语法 #

bash
jps [options] [hostid]

其中:

  • options:可选参数,用于控制输出格式和内容
  • hostid:可选参数,指定远程主机ID,用于查看远程系统上的Java进程

常用命令选项 #

选项 描述
-q 仅显示进程ID(PID),不显示主类名称
-m 显示Java进程的主类名称和传递给主方法的参数
-l 显示主类的完整包名或JAR文件的完整路径
-v 显示传递给JVM的参数
-V 显示通过环境变量或配置文件传递给JVM的参数
-J<flag> 传递参数给运行jps的JVM

使用示例 #

1. 基本使用 #

bash
jps

输出示例:

text
12345 Jps
67890 MyApplication

2. 仅显示进程ID #

bash
jps -q

输出示例:

text
12345
67890

3. 显示完整类名 #

bash
jps -l

输出示例:

text
12345 sun.tools.jps.Jps
67890 com.example.MyApplication

4. 显示主方法参数 #

bash
jps -m

输出示例:

text
12345 Jps
67890 MyApplication arg1 arg2

5. 显示JVM参数 #

bash
jps -v

输出示例:

text
12345 Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m
67890 MyApplication -Xmx512m -Xms256m -Dconfig.file=application.properties

6. 组合使用多个选项 #

bash
jps -lmv

输出示例:

text
12345 sun.tools.jps.Jps -Dapplication.home=/usr/lib/jvm/java-11-openjdk-amd64 -Xms8m
67890 com.example.MyApplication arg1 arg2 -Xmx512m -Xms256m -Dconfig.file=application.properties

注意事项 #

  1. 权限问题:在某些系统上,可能需要管理员权限才能查看所有Java进程
  2. 环境变量:确保JDK的bin目录已添加到系统PATH环境变量中
  3. 远程查看:查看远程主机的Java进程需要配置远程主机的jstatd服务
  4. 兼容性:jps工具随JDK一起发布,不同JDK版本的jps可能存在细微差异
  5. 与ps命令的区别:jps只显示Java进程,而ps可以显示所有进程;jps提供了更多Java特定的信息

远程使用JPS #

要查看远程主机上的Java进程,需要:

  1. 在远程主机上启动jstatd服务:
bash
jstatd -J-Djava.security.policy=all.policy

其中,all.policy文件内容如下:

text
grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};
  1. 使用jps查看远程进程:
bash
jps remotehostname:1099

总结 #

JPS是一个简单但强大的Java进程查看工具,它可以帮助开发者快速了解系统中运行的Java进程信息。通过结合不同的命令选项,可以获取进程ID、主类名称、启动参数等详细信息,为Java应用的监控和调试提供便利。

建议开发者在日常工作中熟练掌握jps命令的使用,它将成为Java开发和维护工作中的得力助手。

最后更新:2026-02-05