JDK 工具之 jps 详解

Last Modified: 2023/09/03

概述

jps 用于列出当前在操作系统上运行的Java进程的信息。它可以显示Java进程的进程ID(PID)、主类名、传递给Java虚拟机的参数以及其他相关信息。

简单使用

最简单的便是什么参数都不带,直接在命令行运行 jps

jps

可以输出当前运行所有 java 程序的 pid 和 main 方法所在类的名字

31933 Main
37822 Jps

详细一点的输出

如果要 jps 输出更详细一点,可以使用 -l 参数

jps -l

使用 -l 之后,可以输出完整的包名,根据你实际运行的 java 程序,一个输出样例如下:

40850 org.jetbrains.idea.maven.server.RemoteMavenServer36
41298 org.jetbrains.jps.cmdline.Launcher
41321 net.verytools.prac.MyMain

更详细的输出

如果要更详细,可以使用 -v 参数,通过该参数可以将传递给 jvm 的参数都输出出来,使用方法:

jps -v

一个输出样例如下:

40495 Main -Xms128m -Xmx1983m -XX:ReservedCodeCacheSize=512m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -ea -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Dsun.tools.attach.tmp.only=true -XX:ErrorFile=/home/saltyfish/java_error_in_idea_%p.log -XX:HeapDumpPath=/home/saltyfish/java_error_in_idea_.hprof -Didea.vendor.name=JetBrains -Didea.paths.selector=IntelliJIdea2020.3 -Djb.vmOptionsFile=/home/saltyfish/.config/JetBrains/IntelliJIdea2020.3/idea64.vmoptions -Didea.jre.check=true

-v 是 verbose 的意思,可以看出,这输出结果相当的啰嗦。不过从中可以看出很多信息,这里可以看出最大堆内存为 1983m,使用的 GC 算法为 CMS。

注:对于一些初学者来说 jps 看起来好像没什么用,但是其实有一些其他命令需要 java 进程 pid,而 jps 就可以获取 pid,这比单纯使用 shell 命令,如 ps 更直接。

有问题吗?点此反馈!

温馨提示:反馈需要登录