有时在一个应用中,会依赖很多的jar包,难免会出现引用不同jar包中的同名类,或者jar包冲突,这时搞清楚:
JVM启动时加载了哪些jar包
或者一个类来自哪个jar中来就非常重要了。
一、查看JVM加载了哪些jar包
启动JVM,通过如下命令获取进程号:
jps -lm
其中参数:
-l:输出main所在类的全名,如果执行的是jar包,则输出jar包路径
-m:输出jvm进程启动时传递给main函数的参数
jps还有参数-v:输出jvm进程启动时JVM参数。
使用如下命令:
jinfo + 进程号
找到打印出的信息中的java.class.path属性值,既是jvm进程启动时加载的jar包。
二、查看具体的class从哪个jar保重加载的
在JVM启动时,加上如下参数:
-verbose:class
即可在console控制台上看到加载的class是从哪个jar中来的,示例如下:
[Loaded java.util.regex.Pattern from /Library/Java/JavaVirtua
网友评论