jps——查看正在运行的 Java 进程

一 点睛

jps(Java Process Status):显示指定系统内所有的 HotSpot 虚拟机进程(查看虚拟机进程信息),可用于查询正在运行的虚拟机进程。

说明:对于本地虚拟机进程来说,进程的本地虚拟机 ID 与操作系统的进程 ID 是一致的,是唯一的。

基本使用语法为:jps [options] [hostid]

我们还可以通过追加参数,来打印额外的信息。

options 参数

  • -q:仅仅显示 LVMID(local virtual machine id),即本地虚拟机唯一 id。不显示主类的名称等

  • -l:输出应用程序主类的全类名,如果进程执行的是 jar 包,则输出 jar 完整路径

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

  • -v:列出虚拟机进程启动时的 JVM 参数。比如:-Xms20m -Xmx50m 是启动程序指定的 jvm 参数。

说明:以上参数可以综合使用。

补充:如果某 Java 进程关闭了默认开启的 UsePerfData 参数(即使用参数 -XX:-UsePerfData),那么 jps 命令(以及下面介绍的 jstat)将无法探知该 Java 进程。

hostid 参数

RMI 注册表中注册的主机名。如果想要远程监控主机上的 java 程序,需要安装 jstatd。

对于具有更严格的安全实践的网络场所而言,可能使用一个自定义的策略文件来显示对特定的可信主机或网络的访问,尽管这种技术容易受到 IP 地址欺诈攻击。

如果安全问题无法使用一个定制的策略文件来处理,那么最安全的操作是不运行 jstatd 服务器,而是在本地使用 jstat 和 jps 工具。

二 实战

1 代码

package chaper02;

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String info = scanner.next();
    }
}

2 基本测试

# 基本使用

F:\svn\19_byzb_back\branches\JVMDemo3>jps

10656 Jps

2756

3640 ScannerTest

# 使用帮助

F:\svn\19_byzb_back\branches\JVMDemo3>jps -help

usage: jps [-help]

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

Definitions:

    <hostid>:      <hostname>[:<port>]

# -q:只显示进程id

F:\svn\19_byzb_back\branches\JVMDemo3>jps -q

18832

2756

3640

# -l:输出应用程序主类的全类名

F:\svn\19_byzb_back\branches\JVMDemo3>jps -l

2756

3640 chaper02.ScannerTest

6108 sun.tools.jps.Jps

3 main 带参数测试

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

F:\svn\19_byzb_back\branches\JVMDemo3>jps -m

2644 ScannerTest hello

2756

16744 Jps -m

11692 Launcher D:/ProgramFiles/JetBrains/IDEA/lib/jna.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-builder-support-3.6.1.jar;D:/ProgramFiles/JetBrains/IDEA/lib/httpclient-4.5.12.jar;D:/ProgramFiles/JetBrains/IDEA/lib/slf4j-api-1.7.2

5.jar;D:/ProgramFiles/JetBrains/IDEA/plugins/java/lib/jps-builders.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-resolver-provider-3.6.1.jar;D:/ProgramFiles/JetBrains/IDEA/lib/lz4-java-1.7.1.jar;D:/ProgramFiles/JetBrains/IDEA/lib/ann

otations.jar;D:/ProgramFiles/JetBrains/IDEA/plugins/java/lib/jps-builders-6.jar;D:/ProgramFiles/JetBrains/IDEA/lib/log4j.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-resolver-util-1.3.3.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-r

esolver-impl-1.3.3.jar;D:/ProgramFiles/JetBrains/IDEA/lib/oro-2.0.8.jar;D:/ProgramFiles/JetBrains/IDEA/lib/idea_rt.jar;D:/ProgramFiles/JetBrains/IDEA/lib/plexus-utils-3.2.0.jar;D:/ProgramFiles/JetBrains/IDEA/lib/netty-buffer-4.1.47.

Final.jar;D:/ProgramFiles/JetBrains/IDEA/lib/netty-resolver-4.1.47.Final.jar

4 虚拟机启动参数测试

# -v:列出虚拟机进程启动时的 JVM 参数。

F:\svn\19_byzb_back\branches\JVMDemo3>jps -v

4880 Jps -Dapplication.home=D:\ProgramFiles\Java\jdk1.8.0_251 -Xms8m

2756  exit -Xms128m -Xmx1911m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapD

umpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -javaagent:C:\Users\Public\.jetbrains\jetbrains-agent-v3.2.0.de72.619 -Djb.

vmOptionsFile=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.vmoptions -Djava.library.path=D:\ProgramFiles\JetBrains\IDEA\jbr\\bin;D:\ProgramFiles\JetBrains\IDEA\jbr\\bin\server -Didea.jre.check=true -

Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2020.1 -XX:ErrorFile=C:\Users\chengqiuming\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\chengqiuming\java_error_in_idea.hprof

12040 ScannerTest -Xms100m -Xmx100m -javaagent:D:\ProgramFiles\JetBrains\IDEA\lib\idea_rt.jar=54227:D:\ProgramFiles\JetBrains\IDEA\bin -Dfile.encoding=UTF-8

19372 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=F:/svn/19_byzb_back/branches/JVMDemo3 -Dpreload.config.path=C:/Users/chengqiuming/AppData/Roaming/Je

tBrains/IntelliJIdea2020.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Dio.netty.initialSeedUniquifier=2451929110092469614 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=Inte

lliJIdea2020.1 -Didea.home.path=D:\ProgramFiles\JetBrains\IDEA -Didea.config.path=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea2020.1 -Didea.plugins.path=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea202

0.1\plugins -Djps.log.dir=C:/Users/chengqiuming/AppData/Local/JetBrains/IntelliJIdea2020.1/log/build-log -Djps.fallback.jdk.home=D:/ProgramFiles/JetBrains/IDEA/jbr -Djps.fallback.jdk.version=11.0.6 -Dio.netty.noUnsafe=true -Djava.io

.tmpdir=C:/Users/chengqiuming/AppData/Local/JetBrains/IntelliJIdea2020.1/compile-server/jvmdemo3_5f0f9f71/_temp

5 综合使用

# 综合使用

F:\svn\19_byzb_back\branches\JVMDemo3>jps -lmv

2756  exit -Xms128m -Xmx1911m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapD

umpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -javaagent:C:\Users\Public\.jetbrains\jetbrains-agent-v3.2.0.de72.619 -Djb.

vmOptionsFile=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.vmoptions -Djava.library.path=D:\ProgramFiles\JetBrains\IDEA\jbr\\bin;D:\ProgramFiles\JetBrains\IDEA\jbr\\bin\server -Didea.jre.check=true -

Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2020.1 -XX:ErrorFile=C:\Users\chengqiuming\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\chengqiuming\java_error_in_idea.hprof

12040 chaper02.ScannerTest hello -Xms100m -Xmx100m -javaagent:D:\ProgramFiles\JetBrains\IDEA\lib\idea_rt.jar=54227:D:\ProgramFiles\JetBrains\IDEA\bin -Dfile.encoding=UTF-8

19372 org.jetbrains.jps.cmdline.Launcher D:/ProgramFiles/JetBrains/IDEA/lib/jna.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-builder-support-3.6.1.jar;D:/ProgramFiles/JetBrains/IDEA/lib/httpclient-4.5.12.jar;D:/ProgramFiles/JetBrain

s/IDEA/lib/slf4j-api-1.7.25.jar;D:/ProgramFiles/JetBrains/IDEA/plugins/java/lib/jps-builders.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-resolver-provider-3.6.1.jar;D:/ProgramFiles/JetBrains/IDEA/lib/lz4-java-1.7.1.jar;D:/ProgramFi

les/JetBrains/IDEA/lib/annotations.jar;D:/ProgramFiles/JetBrains/IDEA/plugins/java/lib/jps-builders-6.jar;D:/ProgramFiles/JetBrains/IDEA/lib/log4j.jar;D:/ProgramFiles/JetBrains/IDEA/lib/maven-resolver-util-1.3.3.jar;D:/ProgramFiles/

JetBrains/IDEA/lib/maven-resolver-impl-1.3.3.jar;D:/ProgramFiles/JetBrains/IDEA/lib/oro-2.0.8.jar;D:/ProgramFiles/JetBrains/IDEA/lib/idea_rt.jar;D:/ProgramFiles/JetBrains/IDEA/lib/plexus-utils-3.2.0.jar;D:/ProgramFiles/JetBrains/IDE

A/lib/netty-buffer-4.1.47.Final.jar;D:/ProgramFiles/JetBrains/IDEA/lib/netty-resolver-4.1.47.Final.jar -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=F:/svn/19_by

zb_back/branches/JVMDemo3 -Dpreload.config.path=C:/Users/chengqiuming/AppData/Roaming/JetBrains/IntelliJIdea2020.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Dio.netty.initialSeedUniquifier=245192911009246

9614 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2020.1 -Didea.home.path=D:\ProgramFiles\JetBrains\IDEA -Didea.config.path=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea20

20.1 -Didea.plugins.path=C:\Users\chengqiuming\AppData\Roaming\JetBrains\IntelliJIdea2020.1\plugins -Djps.log.dir=C:/Users/chengqiuming/AppData/Local/JetBrains/IntelliJIdea2020.1/log/build-log -Djps.fallback.jdk.home=D:/ProgramFiles

/JetBrains/IDEA/jbr -Djps.fallback.jdk.version=11.0.6 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/chengqiuming/AppData/Local/JetBrains/IntelliJIdea2020.1/compile-server/jvmdemo3_5f0f9f71/_temp

2604 sun.tools.jps.Jps -lmv -Dapplication.home=D:\ProgramFiles\Java\jdk1.8.0_251 -Xms8m

6 -XX:-UsePerfData关闭监控测试

# 以 -XX:-UsePerfData 启动 ScannerTest,无法监控到 ScannerTest 进程

F:\svn\19_byzb_back\branches\JVMDemo3>jps

5520 Jps

18084 Launcher

2756

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值