前輩說,java的基本功的好壞,一個方面要看是否能熟練使用jdk bin下的工具使用情況。
自己整理一下使用的工具。
■ javac
一個編譯java的工具,進入java所在文件的路徑后,javac XXX.java
■ java
java XXX 執行生成的字節碼文件。
■ jar
打jar包用的,現在一般都用eclipse等這種工具,直接打jar包
■ javadoc
生成java的doc文檔。現在一般都用eclipse等這種工具,直接可以生成,不用單獨去敲這個命令。
■ jps
它是java process 的縮寫,就是查看當前java的啟動的進程。注意,顯示的是java啟動的進程,並非操作系統的進程。
使用方法,在控制台中直接 jps 就行。
p.s.我在實際操作中遇到個問題,這邊運行着java程序,另一邊敲下了jps,但是卻什么也沒有。這是為什么呢?后來我查了資料找到了原因。在 Win32 系統上,每個 java 進程啟動之后都在 %TMP%\hsperfdata_user ( user 為當前登錄用戶名)目錄下建立一個以該 java 進程 pid 為文件名的文件,用以記錄該 java 進程的一些信息。而 jconsole 和 jps 正是利用這些文件來獲取當前系統中 java 進程的信息的。如果該目錄位於 FAT 文件系統下,或者位於 NTFS 文件系統下,但當前用戶對%TMP%\hsperfdata_user目錄的訪問權限不足,無法創建和寫入該文件,jconsole 和 jps 就抓瞎了。
解決辦法:
在啟動java程序的時候添加一個參數即可:
-XX:+PerfBypassFileSystemCheck
■ jconsole
它是java內置的性能分析器。你可以輕松的使用它,來監控java程序性能和跟蹤java中的代碼。
在使用Eclipse的時候,為了使用jconsole,需要配置一些參數,程序的啟動參數如下:
-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX ip地址
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8011 端口號,隨便
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
之后,啟動程序。接下來,cmd命令行中,調用jconsole,接下來,輸入ip地址:端口號,點擊連接就可以了。
在這里,推薦一篇博客,里面對jconsole有更詳細的介紹,講解的比我好,我就不在這里多說了。
http://jiajun.iteye.com/blog/810150
■JVisualVM
它是集成了多個jdk命令的免費可視化工具,它可以被單獨下載,但是jdk的bin下,已經安裝好了。可以直接使用。
它里面有豐富的插件,要想使用JConsole等一些功能,需要下載插件。各版本最新的下載中心:https://visualvm.github.io/pluginscenters.html
設置下載中心的方法:Tools -> Plugins -> Settings添加最新的插件中心。
推薦一個博客:http://jiajun.iteye.com/blog/1180230
■JMAP
生成java 對內存統計數據的工具。假設,我們在lunix下,無法使用圖形界面分析,這時使用jmap將堆內存等統計數據導入后,再有其他可視化工具進行分析。
-dump:[live,]format=b,file=<filename>
e.g. jmap -dump:format=b,file
=output.bin
其它的工具,未完待續。。。