URLClassLoader의 ClassNotFoundException가내가 런타임에 동적으로 클래스를로드하는 코드를 작성하기 위해 노력하고있어
public class URLDynClassLoader {
public URLDynClassLoader(){
try{
loadclasses(new File("C:/Users/Miller/Desktop/test/") , "Shapes.");
}
catch(ClassNotFoundException e){
e.printStackTrace();
System.out.println(e.getMessage());
}
catch(Exception f){
System.out.println(f.getMessage());
System.out.println("error");
}
}
private ArrayList<String> getClassNames(File folder){
File[] listOfFiles = folder.listFiles();
ArrayList<String> fileNames = new ArrayList<String>() ;
for (File file : listOfFiles) {
if (file.isFile()) {
if(accept(file.getName())){
fileNames.add(file.getName());
}
}
}
return fileNames ;
}
ArrayList<Class> loadclasses(File folder , String packageName) throws MalformedURLException, ClassNotFoundException{
URLClassLoader load = URLClassLoader.newInstance(new URL[] { folder.toURL() }) ;
ArrayList<Class> data = new ArrayList<Class>();
ArrayList<String> names = getClassNames(folder);
for(int i=0 ; i<names.size() ; ++i){;
data.add(load.loadClass(fixName(packageName , names.get(i))));
System.out.println("i"+i);
}
return data ;
}
private String fixName(String packageName, String className) {
className = className.replaceAll(".class", "");
return packageName+className;
}
public boolean accept(String arg) {
return arg.endsWith(".class");
}
public static void main(String[] args) {
new URLDynClassLoader();
}
}
문제는 이것이 내가 파일을 .class가 존재 확신 그래도, 나에게면 ClassNotFound 예외를주고 유지한다는 것입니다 디렉토리, 이미로드 된 클래스를로드하려고 시도한 또 다른 것은 그것이 작동하므로 내 코드에 클래스 파일이없는 경우에만 작동하지 않습니다 !!
'import java.net.URLClassLoader;'... – Reimeus
또한 for (int i = 0; i
Ambrish
또한 스택 추적을 제공하십시오. – Ambrish