您好,登錄后才能下訂單哦!
java小工具都有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
常做Java開發的朋友,不管是做純后端開發,還是做Java Web開發,有一些操作你一定會經常遇到。比如:
我在工作中見過許多人,想要查看當前正在運行的Java應用時,會通過進程管理器(Windows下),或者使用
ps -ef | grep java (在Linux下使用命令行)。通過這些來獲取運行的Java應用列表,以及對應的PID(進程ID)。
而查看堆內存,可能會下載一些第三方的工具等。
其實,JDK中已經默認自帶了一些小工具,非常好用,使用方便快捷。不信你看下面這些:
jps (Java Virtual Mathine Process Status Tool)
從名稱可以看出個大概。主要是把Java進程的狀態列出來。
這個命令可以指定hostid,從而列出遠程主機的Java進程。
這個命令有幾個參數,我比較常用的有
-l 輸出應用程序主類的完整包名,或者是應用程序JAR文件的完整路徑。
-v 輸出傳給JVM的參數。
一般通過jps -lv就可以把本地的所有Java進程,以及傳給JVM的參數,運行的文件位置都列出來。這樣,一個命令上面前兩個問題就解決了。
2. jinfo (Java Configuration Info)
主要用來查看Java進程使用的一些配置參數,比如設置的堆內存有多大,是否允許在OOM產生的時候dump出堆信息等。
除此之外,該命令還可以動態更改配置的項,比如上面提到的OOM dump這個開關是關著的,那可以在運行的時候再打開它。
3. jstate (Java Virtual Machine Statistics Monitoring Tool)
這個命令選項很多,根據不同的選項,可以統計你感興趣的不同的數據,比如你對JVM的垃圾回收數據感興趣,可以直接通過指定 -gc 來查看,而更常用的一個選項是 -gcutil 可以統計新生代,老年代垃圾收集的情況。
當然,JDK自帶的小工具還有很多,以上面這幾個工具為例,其中后兩者在執行時,都需要先知道JVM的PID之后,才能執行,畢竟這些工具需要了解你要查看哪個JVM。
下面我們來簡要了解下jps的大概實現原理。
每個JVM在啟動后,其本質上依然是操作系統的一個進程,都會存在一個PID值與之對應。而JVM內部的實現,則是在每次啟動之后,在本地的一個目錄內創建一個以當前JVM的PID為文件名的文件,文件路徑和操作系統有關,我的windows7下路徑是
C:\Users\{這里是你的用戶名}\AppData\Local\Temp\hsperfdata_{這個也是你的用戶名}
在這個目錄下,所有你下在運行的JVM對應的PID文件都在這里了。
同樣的道理,如果你曾經用過JConsole(這也是個JDK自帶的小工具),可能馬上就有感覺了。因為它也是通過讀這個目錄下的文件信息得到需要的數據,你看下面這個Jconsole新建連接的圖,這些PID剛好這上面的文件對應是不是。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。