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 をスローします。
その後、プログラムを再起動すると、正常に動作します。
したがって、私の質問は、jar パスと jar 名が変更されていないため、ClassNotFoundException がスローされる理由です。クラスローダーは問題なくそれをロードする必要があります。
道順を教えてください。