JARファイルのリストを読み取り、各jarを使用してロードしているアプリケーションを実行していますが、別のJARから別のクラスを参照している1つのJARからURLClassLoader
をロードしているときに、 .Class
NoClassDefError
String jbossConfigPath = System.getProperty("jboss.server.config.dir");
String jarPath = jbossConfigPath + "/somepath";
File file = new File(jarPath);
String [] jars = file.list();
URL[] jarURLs = new URL [jars.length];
int i=0;
for(String jar : jars){
File fileJar = new File(file,jar);
jarURLs[i] = fileJar.toURI().toURL();
i++;
}
URLClassLoader cl = URLClassLoader.newInstance(jarURLs,Thread.currentThread().getContextClassLoader());
Class<?> cls = ul.loadClass("com.some.class.Demo");
別のJARのクラスを参照しているため、クラスのNoClassDefError
ロード中に常に取得しています。Demo
Demo2
誰か助けてくれませんか?