Day7-JDK查看正在运行的Java进程工具:jps

前言

在介绍JDK有哪些工具时,第二大列应该是『故障排查、分析、监控和管理工具』,但我想先从监控工具jps、jstat这些比较基本的工具开始介绍,会比较好理解。

JPS介绍

jps全名:Java Virtual Machine Process Status Tool ,透过该指令查看系统内所有HotSpot虚拟机正在运行的进程。
p.s:透过该指令查到的PID与在Linux/Mac作业系统中下top指令查到的PID相同,代表进程的ID是唯一的。


指令介绍

jps [option] [hostid]

一样可以透过在终端机下jps -help查看有哪些option可以使用。
注意!! 若直接下jps则会出现系统内所有HotSpot虚拟机正在运行的进程资讯,而非跟-help出现一样的内容喔!!
https://ithelp.ithome.com.tw/upload/images/20210921/2014048173UQjd34pW.png

hostid介绍

指定特定主机,可以是ip地址和域名,也可指定具体协议,端口。

option 介绍

-q:仅显示LVMID(Local Virtual Machine id),即PID,不显示主类的名称。


-m:列出传递给main方法的参数。
-l:列出应用程序主类完整的类名或jar包完整的路径。
-v:列出虚拟机进程启动时的JVM参数。
-V:输出通过.hotsportrc或-XX:Flags-< filename >指定的JVM参数)(这参数我目前还有点不明白,这就不介绍了)

可以先在终端机内下jps看看目前有哪些进程正在运行中

若没有任何正在运行的Java程序或者相关的ide没有开着,那麽应该只会有一个,也就是jps。
https://ithelp.ithome.com.tw/upload/images/20210921/20140481LbBRYS1BRW.png
p.s 每下一次jps,它的PID就会改变喔!代表每次jps指令都是一个新的进程。


Step1.准备一个JpsTest.java档案,程序码如下:

package Controller;

public class JpsTest{

  public static void main(String[] args) throws InterruptedException{
    System.out.println("Start"+Arrays.toString(args));
    Thread.sleep(60000);
    System.out.println("The End");
  }
}

我写了一段程序码,将引数值输出,接着让目前的执行绪暂停执行一段时间,单位为毫秒(millisecond)

Step2.将程序码进行编译并且执行

编译且执行,执行时我增加了一些参数

java -Xmx20m Controller/JpsTest Program arguments

编译与执行的指令说明,请参考Day4-java语言编译器:javac & 运行工具:java (上)
注:
-Xmx20m:这是要给予的VM arguments(系统属性),Xmx 代表的意思是最大堆大小 ,mx是memory max的简称。
Program arguments:编译时给予的args引数

Step3.输入jps指令

  • 不带有任何参数

https://ithelp.ithome.com.tw/upload/images/20210922/20140481V3XrNKGVJd.png

  • -q

jps -q

https://ithelp.ithome.com.tw/upload/images/20210922/20140481yLdx0isrFs.png

-q 这参数是只显示PID资讯,故-q与其他参数放在一起也不会有任何效果
https://ithelp.ithome.com.tw/upload/images/20210922/20140481lxyM7aRgbT.png

  • -m

jps -m

https://ithelp.ithome.com.tw/upload/images/20210922/20140481AYM4eyUu2R.png

  • -l

jps -l

https://ithelp.ithome.com.tw/upload/images/20210922/20140481CtIQrhmxn3.png

运行时,如何指定class路径,jps会显示一样的结果

java Controller.JpsTest

https://ithelp.ithome.com.tw/upload/images/20210922/20140481GJY64j91p0.png

  • -v

jps -v

https://ithelp.ithome.com.tw/upload/images/20210922/20140481Wtmtbg7TTb.png

补充:
多个参数可一起放置,将想显示的资讯放在一起

jps -v -m

https://ithelp.ithome.com.tw/upload/images/20210922/201404814IMndKuzGR.png


<<:  透明这回事

>>:  属性图模型 Property Graph Diagram

Day-30 不知不觉面试题完赛!感谢大家!

不敢相信今天是第30天了! 我完赛了!好感动啊~ 真的很感谢帮过我的老师/助教/同学/亲友…很多啦...

【资料结构】前中後运算式转置

前中後运算式转置 中置运算式是人脑的计算中最直观且最习惯理解的表示式,会将运算子(EX:加号)放在两...

Chapter1-DJ最爱的音频动感图像(IV)让音乐动起来!开篇基础设定和动画框架

话不多说先上图 从左到右依序执行,最後该函式会再呼叫自己一次,图中淡化的区块是下个章节的主题 然後把...

认识HTML(三)

常见的HTML elements 标题headings 若想在文字中设定像章节名称之类的标题,可以使...

[Day12] 打鱼晒网

前言 写在前面 Kaggle 不知道从何时开始,每年会有一段时间举办 30 days challen...