Java 工具集教程

jps.exe 查看虚拟机进程状况

JDK 的很多小工具名字都参考了 Unix 命令的命名方式,jps(JVM Process Status Tool)是其中的典型。除了名字像 Unix 的 ps 命令外,它的功能也和 ps 命令类似。

jps 用来列出正在运行虚拟机进程,并显示虚拟机执行主类(Main Class,main() 函数所在的类)的名称,以及这些进程的本地虚拟机的唯一 ID(LVMID,Local Virtual Machine Identifier)。

虽然 jps 功能比较单一,但它是使用频率最高的 JDK 命令行工具,因为其他的 JDK 工具大多需要输入它查询到的 LVMID 来确定要监控的是哪一个虚拟机进程。对于本地虚拟机进程来说,LVMID 与操作系统的进程 ID(PID,Process Identifier)是一致的,使用 Windows 的任务管理器或 Unix 的 ps 命令也可以查询到虚拟机进程的 LVMID。但是,如果本地启动了多个虚拟机进程,此时无法根据进程名称区分虚拟机进程时,那就只能依赖 jps 命令显示主类的功能才能区分了。

命令格式

jps [-help]
jps [-q] [-mlvV] [<hostid>]

命令选项

  • -q  只输出 LVMID,省略主类的名称

  • -m  输出虚拟机进程启动时传递给主类 main() 函数的参数

  • -l  输出主类的全名,如果进程执行的是 Jar 包,输出 Jar 路径

  • -v  输出虚拟机进程启动时 JVM 参数

命令示例

(1)使用 -l 选项输出所有正在运行虚拟机主类的完全限定名,如下:

C:\Users\Administrator> jps -l
6276 org.jetbrains.idea.maven.server.RemoteMavenServer
8388 org/netbeans/Main
11976
6024 sun.tools.jps.Jps
11980 org.jetbrains.jps.cmdline.Launcher

(2)使用 -m 选项输出虚拟机进程启动时传递给主类 main() 函数的参数,如下:

C:\Users\Administrator> jps -m
6276 RemoteMavenServer
8388 Main --branding visualvm --cachedir C:\Users\Administrator\AppData\Local\VisualVM\Cache/8u40
11976
9304 Jps -m
11980 Launcher D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/aether-impl-1.1.0.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/log4j.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/commons-codec-1.10.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/lz4-1.3.0.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/plexus-interpolation-1.21.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/netty-common-4.1.30.Final.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/maven-builder-support-3.3.9.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/javac2.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/jdom.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/netty-transport-4.1.30.Final.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/platform-api.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/maven-model-3.3.9.jar;D:/ProgramFilesFree/jetbrains.ideaIU-2018.3.1.win/lib/annotations.jar;D:/ProgramFilesFre

(3)使用 -q 选项仅仅列出虚拟机的进程 LVMID,如下:

C:\Users\Administrator> jps -q
11460
6276
8388
11976
11980

(4)使用 -v 选项输出虚拟机进程启动时 JVM 参数,如下:

C:\Users\Administrator> jps -v
6276 RemoteMavenServer -Djava.awt.headless=true -Didea.version==2018.3.1 -Xmx768m -Didea.maven.embedder.version=3.3.9 -Dfile.encoding=GBK
8388 Main -Xms24m -Xmx256m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false -Dnetbeans.keyring.no.master=true -Dplugin.manager.install.global=false -Djdk.home=D:\ProgramFilesFree\Java\jdk1.8.0_45 -Dnetbeans.home=D:\ProgramFilesFree\Java\jdk1.8.0_45\lib\visualvm\platform -Dnetbeans.user=C:\Users\Administrator\AppData\Roaming\VisualVM\8u40 -Dnetbeans.default_userdir_root=C:\Users\Administrator\AppData\Roaming\VisualVM -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Users\Administrator\AppData\Roaming\VisualVM\8u40\var\log\heapdump.hprof -Dsun.awt.keepWorkingSetOnMinimize=true -Dnetbeans.dirs=D:\ProgramFilesFree\Java\jdk1.8.0_45\lib\visualvm\visualvm;D:\ProgramFilesFree\Java\jdk1.8.0_45\lib\visualvm\profiler
11976  -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -javaagent:JetbrainsIdesCrack-3.4-release-enc.jar -Djb.vmOptionsFile=D:\ProgramFilesFree\jetbrains.ideaIU-2018.3.1.win\bin\idea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2018.3 -XX:ErrorFile=C:\Users\Administrator\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\Administrator\java_error_in_idea.hprof
...
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号