问题是:
主程序调用一个A jar包,在调用进入A的源码的时候,就是很明显的感觉到调试的地方和代码不一致,
像下面这样的,
这个问题基本上就是,我改了A的jar包,但是实际上调试的时候并不是进入到最新的源码里面,
我把jar包引用都改成最新,源码关联都改成最新,jar包导出也确实是最新的。
有点醉了,实在是想不出还有什么情况会导致这个问题。。。
另外一个问题,
如果我在A jar包中使用类加载器加载classpath下面的配置文件,这个文件是A的。
那么我在主程序中调用A,然后加载这个的话,在A中直接使用classpath::XXX.xml,这样是不是只能加载到主程序的classpath,
这样我们在写jar包的话,这样情况应该怎么写比较好呢?
感谢大神!!!
4 个解决方案
#1
UPUPUPUPUPUPUPUPUPUPUPUPUPUP
#2
UPUPUPUPUPUPUPUPUPUPUPUPUPUP
#3
一样的问题,不知其然
#4
找到原因了,是JVM里面已经加载过相同的类,属于同一个名称的jar包,并且没有密封,导致程序在加载这个类的时候使用的是jvm中存在的类,与目标类版本不一致导致。
#1
UPUPUPUPUPUPUPUPUPUPUPUPUPUP
#2
UPUPUPUPUPUPUPUPUPUPUPUPUPUP
#3
一样的问题,不知其然
#4
找到原因了,是JVM里面已经加载过相同的类,属于同一个名称的jar包,并且没有密封,导致程序在加载这个类的时候使用的是jvm中存在的类,与目标类版本不一致导致。