jps
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。
jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:
在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。
$ jps -help
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
这些参数的含义在 JDK 官方文档上有,名字叫 Java平台,标准版工具参考(opens new window)
比如这里的 jps 工具
# 查看当前的 java 进程,左侧是进程 ID,右侧是名称
$ jps
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
25168 RemoteMavenServer36
14292
26264 Jps
13116 MonitorJvmDemoApplication
常用参数
-l参数
-l:显示完整的名称,显示应用程序main类的完整程序包名称或应用程序JAR文件的完整路径名
$ jps -l
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
25168 org.jetbrains.idea.maven.server.RemoteMavenServer36
14292
26104 sun.tools.jps.Jps
13116 com.example.monitorjvmdemo.MonitorJvmDemoApplication
-v参数
-v 显示输出传递给JVM的参数
$ jps -v
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
13552 Launcher -Dfile.encoding=UTF-8 -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=E:/anin/study/monitor-jvm-demo
-Dpreload.config.path=C:/Users/11197/.IntelliJIdea2019.3/config/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSe
edUniquifier=6617817904139369125 -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2019.3 -Didea.home.path=D:\soft\IntelliJ IDEA 2019.3.3 -Did
ea.config.path=C:\Users\11197/.IntelliJIdea2019.3/config -Didea.plugins.path=C:\Users\11197/.IntelliJIdea2019.3/config/plugins -Djps.log.dir=C:/Users/11197/.IntelliJIdea2019.3/system/lo
g/build-log -Djps.fallback.jdk.home=D:/soft/IntelliJ IDEA 2019.3.3/jbr -Djps.fallback.jdk.version=11.0.5 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/11197/.IntelliJIdea2019.3/sys
tem/compile-server/monitor-jvm-demo_74f219e1/_temp_ -Djps.backward.ref.index.builder=true -Dkotlin.incremental.com
8980 -Dfile.encoding=UTF-8 exit -Xms2048m -Xmx2048m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPre
fixCache=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=t
rue -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -javaagent:D:\soft\IntelliJ IDEA 2019.3.3\pj\jetbrains-agent.jar -Djb.vmOptionsFile=C:\Users\11197\.IntelliJIde
a2019.3\config\idea64.exe.vmoptions -Djava.library.path=D:\soft\IntelliJ IDEA 2019.3.3\jbr\\bin;D:\soft\IntelliJ IDEA 2019.3.3\jbr\\bin\server -Didea.jre.check=true -Dide.native.launche
r=true -Didea.paths.selector=IntelliJIdea2019.3 -XX:ErrorFile=C:\Users\11197\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\11197\java_error_in_idea.hprof
18552 Jps -Dfile.encoding=UTF-8 -Dapplication.home=D:\soft\java\jdk1.8.0_45 -Xms8m
17948 MonitorJvmDemoApplication -Dfile.encoding=UTF-8 -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:60191,suspend=y,server=n -Dvisualvm.id=20541122639200 -XX:TieredStopAtLevel=1
-Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -ja
vaagent:C:\Users\11197\.IntelliJIdea2019.3\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8
远程查看进程
列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099
(前提是远程服务器提供jstatd服务)
jps 192.xxx.xxx.xxx