我运行一个打包在A.jar 中的java 应用程序,其中使用了B.jar 中的一些类。
所有相关的 jar 都放在一个特定的目录中,该目录包含在类路径中。
程序是这样的:
main(){
run method ClassA.M1() in A.jar; //the method may keep running for 2 minutes
do some other prepare;
call method ClassB.M2 in B.jar;
}
当程序运行M1时,我手动将B.jar替换为较新的版本(名称也是B.jar)。
但是,程序抛出 ClassNotFoundException。
然后,再次启动程序,它工作正常。
所以,我的问题是:为什么抛出 ClassNotFoundException,因为 jar 路径和 jar 名称没有改变,类加载器应该加载它没有任何麻烦。
请给我一些指示。