以前の質問で、リモート jar ファイルをロードする方法を尋ねました。私の現在のコードはこれです:
//f is the path to the jar
URLClassLoader loader = new URLClassLoader(new URL[]{f.toURI().toURL()});
Class<?> jarClass = Class.forName(main, true, loader);
Class<? extends Module> module = jarClass.asSubclass(Module.class);
Constructor<? extends Module> constructor = module.getConstructor();
System.out.println(constructor);
Module module = constructor.newInstance();
これはうまく機能しますが、リモートでロードされたモジュールは、それらをロードしている jar 内にあるクラスを拡張し、次のエラーが発生します。
原因: java.lang.ClassNotFoundException: package.whatever.Module。これは、getClass().getClassLoader(). の代わりに URLClassLoader を使用しているためだと推測されます。 ?
ありがとう、
バート