JVM进程jar包加载分析

有时在一个应用中,会依赖很多的jar包,难免会出现引用不同jar包中的同名类,或者jar包冲突,这时搞清楚:

  1. JVM启动时加载了哪些jar包
  2. 或者一个类来自哪个jar中来就非常重要了。

一、查看JVM加载了哪些jar包

  1. 启动JVM,通过如下命令获取进程号:

    jps -lm

    其中参数:
    -l:输出main所在类的全名,如果执行的是jar包,则输出jar包路径
    -m:输出jvm进程启动时传递给main函数的参数

    jps还有参数-v:输出jvm进程启动时JVM参数。

  2. 使用如下命令:

    jinfo + 进程号

    找到打印出的信息中的java.class.path属性值,既是jvm进程启动时加载的jar包。

二、查看具体的class从哪个jar保重加载的

在JVM启动时,加上如下参数:

-verbose:class

即可在console控制台上看到加载的class是从哪个jar中来的,示例如下:

[Loaded java.util.regex.Pattern from /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/rt.jar]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值