【linux】(13)java虚拟机进程信息-jps
jps
(Java Virtual Machine Process Status Tool)是一个 Java 提供的命令行工具,用于显示当前 Java 虚拟机进程的相关信息。
基本用法
jps [options] [hostid]
常用选项
- 不带选项
jps
例子:显示当前主机上所有 Java 进程的进程 ID 和 Java 类名或 JAR 文件名。
-q
:只显示进程 ID,不显示类名或 JAR 文件名
jps -q
-m
:显示传递给 Java 虚拟机的参数
jps -m
例子:显示进程 ID、类名(或 JAR 文件名)以及传递给 main 方法的参数。
-l
:显示完全限定的类名或 JAR 文件名
jps -l
-v
:显示传递给 Java 虚拟机的参数
jps -v
例子:显示进程 ID、类名(或 JAR 文件名)以及传递给 Java 虚拟机的参数。
-V
:显示传递给 Java 虚拟机的所有参数
jps -V
-J
:传递参数给jps
命令本身,而不是 Java 应用程序
jps -J<flag>
示例
假设有以下 Java 进程在运行:
- 一个 Spring Boot 应用程序
MySpringApp
- 一个 Hadoop 进程
DataNode
- 一个简单的 Java 应用程序
SimpleApp
,启动命令为java SimpleApp arg1 arg2
使用 jps
查看当前 Java 进程
- 显示当前 Java 进程
jps
输出示例:
12345 MySpringApp
23456 DataNode
34567 Jps
45678 SimpleApp
- 只显示进程 ID
jps -q
输出示例:
12345
23456
34567
45678
- 显示传递给 Java 应用程序的参数
jps -m
输出示例:
12345 MySpringApp
23456 DataNode
34567 Jps -m
45678 SimpleApp arg1 arg2
- 显示完全限定的类名或 JAR 文件名
jps -l
输出示例:
12345 com.example.MySpringApp
23456 org.apache.hadoop.hdfs.server.datanode.DataNode
34567 sun.tools.jps.Jps
45678 SimpleApp
- 显示传递给 Java 虚拟机的参数
jps -v
输出示例:
12345 MySpringApp -Dspring.profiles.active=dev
23456 DataNode -Xmx1024m -Dhadoop.log.dir=/var/log/hadoop
34567 Jps -v
45678 SimpleApp -Xms512m -Xmx1024m
- 显示传递给 Java 虚拟机的所有参数
jps -V
输出示例:
12345 MySpringApp -Dspring.profiles.active=dev -Duser.timezone=GMT
23456 DataNode -Xmx1024m -Dhadoop.log.dir=/var/log/hadoop -Djava.library.path=/usr/lib/hadoop
34567 Jps -V
45678 SimpleApp -Xms512m -Xmx1024m -Dfile.encoding=UTF-8
使用 jps
检查远程主机上的 Java 进程
jps
也可以用于检查远程主机上的 Java 进程,不过需要配置 JMX 连接。例如,要检查远程主机 remotehost
上的 Java 进程:
jps remotehost
常见问题和解决方法
-
权限问题
如果jps
无法显示某些 Java 进程,可能是由于权限问题。请确保您有权限访问这些进程。 -
路径问题
如果jps
无法找到,请确保 JDK 的bin
目录在您的PATH
环境变量中。 -
Java 版本不匹配
jps
工具依赖于 JDK 版本,如果远程主机上的 JDK 版本与本地主机不同,可能会导致问题。