原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」
jps(Java Virtual Machine Process Status Tool)
jps是java提供的一個顯示當前所有java進程pid的命令,適合在linux/unix平臺上簡單察看當前java進程的一些簡單情況。
很多人都是用過unix系統里的ps命令,這個命令主要是用來顯示當前系統的進程情況,有哪些進程以及進程id。
jps 也是一樣,它的作用是顯示當前系統的java進程情況及進程id。
我們可以通過它來查看我們到底啟動了幾個java進程(因為每一個java程序都會獨占一個java虛擬機實例)
并可通過opt來查看這些進程的詳細啟動參數。
命令格式如下,options 和 pid 都是可選的,pid就是應用程序的進程號,
命令格式:jps [options ] [ pid ]
輸入jps命令就會展示出當前電腦中所有的java進程,其中前面數字就是pid,后面的英文是應用的名稱
jps常用選項如下
| 命令 | 說明 |
|---|---|
| -l | 輸出主程序的路徑全類名 |
| -m | 輸出main方法的參數 |
| -q | 只輸出進程號pid,不包括類名,jar 文件名,參數名 |
| -v | 輸出jvm參數 |
| -V | 輸出通過flag文件傳遞到JVM中的參數(.hotspotrc文件或-XX:Flags=所指定的文件 |
| -Joption | 傳遞參數到jvm虛擬機 ,例如:-J-Xms512m |
輸出主程序的路徑全類名 -l
在命令行輸入命令,則會展示出進程id和main方法所在路徑的全類名
jps -l
輸出main方法的參數 -m
在命令行輸入以下命令,顯示的信息除了進程id和應用程序的名稱之外,還可看到main方法輸入的參數信息,
先在運行的main方法中加入2個參數,
運行main方法后,可以看到參數中已經有了參數
接著在控制臺輸入以下jps命令,就可以看到所有main方法中的參數了
jps -m
只輸出進程編號pid -q
jps -q
輸出jvm參數 -v
一般來說,每個運行的進程都會自帶一些jvm,接下來我們往進程里面添加一個參數
然后啟動項目,接著在命令行輸入以下命令
jps -v
打印的結果中就可以找到我夢剛剛輸入的jvm參數,還有其他的參數是idea在啟動時自帶的,我們忽略就好;
組合命令 -mlv
除了可以單個命令打印之外,也可以多個命令一起使用,只不過輸出的信息有點多而已,輸入以下命令
jps -mlv
打印結果如下,東西太多了, 沒截全
遠程連接jps
服務端配置
首先,需要在服務端開啟一個策略,新建一個策略文件vim jstatd.all.policy,
將下面的代碼復制到vim jstatd.all.policy文件中,注意file目錄需要改成你自己的jdk目錄,下面的這個示例策略將允許jstatd服務具有JVM全部的訪問權限:
grant codebase "file:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar" {
permission java.security.AllPermission;
};
然后在服務器當前目錄中啟動策略
jstatd -J-Djava.security.policy=jstatd.all.policy
啟動后會進入阻塞狀態,這個時候就表示可以連接了
客戶端配置
在客戶端輸入命令,遠程連接到服務器的jps即可,我這邊用了本地來做測試,因為沒有遠程服務器;:
注意:如果是遠程的服務器,需要開啟端口權限和防火墻的配置,否則會拒絕連接
jps -l 127.0.0.1
打印結果如下,出結果就表示已經連接成功了;
完
還有兩個命令-Joption和 -V使用的不多,感興趣的可以自己測試一下,其實jps使用的也不是很多,因為我們一般部署項目都是用linux系統,而linux系統已經自帶了 ps 命令,而且比jps強大很多,所以真正用jps的人會比較少;
總結
以上是生活随笔為你收集整理的原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平衡二叉树的构造_LeetCode-平衡
- 下一篇: 玉溪创客是女人烟吗