背景
在开发过程中,我们常遇到jar包冲突问题,或者本地好使的项目,放到服务器就不行了。
这种情况,就可以使用arthas的sc命令来帮助我们查看某个类,使用的是哪个jar包。
方法
$ sc -d demo.MathGame
class-info demo.MathGame
code-source /private/tmp/arthas-demo.jar
name demo.MathGame
isInterface false
isAnnotation false
isEnum false
isAnonymousClass false
isArray false
isLocalClass false
isMemberClass false
isPrimitive false
isSynthetic false
simple-name MathGame
modifier public
annotation
interfaces
super-class +-java.lang.Object
class-loader +-sun.misc.Launcher$AppClassLoader@3d4eac69
+-sun.misc.Launcher$ExtClassLoader@66350f69
classLoaderHash 3d4eac69
Affect(row-cnt:1) cost in 875 ms
从上面的打印信息中,我们可以很容易看到demo.MathGame
这个类是从/private/tmp/arthas-demo.jar
这个jar包的。