有時在一個應用中,會依賴很多的jar包,難免會出現引用不同jar包中的同名類,或者jar包沖突,這時搞清楚:
- JVM啟動時加載了哪些jar包
- 或者一個類來自哪個jar中來就非常重要了。
一、查看JVM加載了哪些jar包
-
啟動JVM,通過如下命令獲取進程號:
jps -lm
- 1
其中參數:
-l
:輸出main所在類的全名,如果執行的是jar包,則輸出jar包路徑-m
:輸出jvm進程啟動時傳遞給main函數的參數jps還有參數
-v
:輸出jvm進程啟動時JVM參數。 -
使用如下命令:
jinfo + 進程號
- 1
找到打印出的信息中的
java.class.path
屬性值,既是jvm進程啟動時加載的jar包。
二、查看具體的class從哪個jar保重加載的
在JVM啟動時,加上如下參數:
-verbose:class
https://blog.csdn.net/tterminator/article/details/53648773