0
クラスが後でコンパイルされたとしても、新しいクラスのCallingClassがまだ私のjarで動作するかどうかをテストします。NoSuchMethodErrorがloader.loadClass()の呼び出しによって呼び出されました。
私の場合、CallingClass.m1()は、Jarファイルに存在しないCalledClass.method()メソッドを呼び出します。コードの実行によりNoSuchMethodErrorが発生します。
CallingClassクラスをもう一度jarでテストするソリューションが必要ですが、実行の外側です。
私は
public class ResolvingClassLoader extends ClassLoader
{
public Class<?> loadClass(String name) throws ClassNotFoundException
{
return loadClass(name, true);
}
public static void main(String[] args) throws Exception
{
final ResolvingClassLoader loader = new ResolvingClassLoader();
final String className = "CallingClass";
loader.loadClass(className);
}
}
以下しようと、それは(すなわちリンク)クラスを解決するよう、NoSuchMethodErrorを発生させるのloadClassの呼び出しを期待してきました。そうではありません。 「初期の」NoSuchMethodErrorを生成する方法を知っていますか?