jdk常用工具命令收藏

jstatd 寫道
創建安全策略文件,並命名爲jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

再次啓動
jstatd -J-Djava.security.policy=jstatd.all.policy

a)使用默認值
rmiregistry&
jstatd -J-Djava.security.policy=all.policy
b)使用2020端口
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020
c)使用2020端口,使用rminame
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName
(3)RMI Registry已經啓動,不創建內部RMI Registry
jstatd -J-Djava.security.policy=all.policy -nr
(4)RMI日誌能力
jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true

 

jinfo 寫道

用法:
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [server-id@]remote-hostname-or-IP

參數:

pid 進程號
executable 產生core dump的java executable
core core file
remote-hostname-or-IP 主機名或ip
server-id 遠程主機上的debug server的唯一id

選項:
no option 打印命令行參數和系統屬性
-flags 打印命令行參數
-sysprops 打印系統屬性
-h 幫助

觀察運行中的java程序的運行環境參數:參數包括Java System屬性和JVM命令行參數
實例:
jinfo 2083
其中2083就是java進程id號,可以用jps得到這個id號。我在windows上嘗試輸入這個命令,但是不管用,於是我輸入了下面這個命令:
jinfo -flag MaxPermSize 3980
顯示如下:
-XX:MaxPermSize=67108864

 

寫道
jstack用於打印出給定的java進程ID或core file或遠程調試服務的Java堆棧信息

 

jmap 寫道
命令使用:
jmap -heap 2083
可以觀察到New Generation(Eden Space,From Space,To Space),tenured generation,Perm Generation的內存使用情況

jmap -histo 2083 | jmap -histo:live 2083
可以觀察heap中所有對象的情況(heap中所有生存的對象的情況)。包括對象數量和所佔空間大小。

jmap -histo java進程id
可以查看java進程中的所有實例、實例的個數,可用於查詢單例對象是否真的只生成了一個實例。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章