のは、私が持っていると言うのサブディレクトリ内のすべてのjarファイルをロードするメインクラスのApp URLClassLoaderの使用プラグイン:のJava搭載JAR:NoClassDefFoundErrorが
public class App(){
public static void main(String[] args){
for(File f : new File("plugins").listFiles()){
URL[] urls = { new URL("jar:file:" + "plugins/" + f.getName() + ".jar" + "!/") };
URLClassLoader cl = URLClassLoader.newInstance(urls);
Class<?> clazz = cl.loadClass(f.getName().toLowerCase()+"."+f.getName());
cl.close();
Plugin p = ((Plugin) clazz.newInstance());
}
}
}
これらすべてのjarがインターフェイスを実装するクラスが含まれているがプラグイン。
+-- Main.jar
| +-- App.class
| +-- Plugin.class
|
+-- Plugins/
| +-- PluginTest.jar
| +-- plugintest
| +-- PluginTest.class
| +-- Two.class
コードをPluginTestクラスに書き込むだけで問題なく動作します。しかし、すぐに、私はPluginTestから二つにアクセスしようとして、私は大きなエラーを取得しています:
Exception in thread "Thread-4" java.lang.NoClassDefFoundError: plugintest/Two
[...]
にはどうすれば正常にクラスをロードする必要がありますか?助けが必要!ありがとう。
標準名で試しましたか? '' plugintest.PluginTest "'? – m0skit0