NetBeans IDE에서 java ClassLoader의 loadClass 메서드를 사용하여 클래스를 동적으로로드하려고합니다. 나는 다음과 같은 독립 실행 형 프로그램을 실행하면 제대로 실행 예상대로 출력 인쇄됩니다 :ClassNotFoundException - ClassLoader를 사용하여 웹 응용 프로그램에 클래스를 동적으로로드하는 중
public class StandaloneClass {
public static void main(String[] args) {
try {
String directory = "C:\\Workspace\\ProjectMeteor\\src\\java\\com\\meteor\\loader";
File file = new File(directory);
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass("com.meteor.loader.ClassToBeLoaded");
Object o = cls.newInstance();
System.out.println("Class Loaded: " + o.getClass().toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
출력 : - 클래스로드 : 클래스 com.meteor.loader.ClassToBeLoaded
하지만를 동일한 코드 조각 (웹 애플리케이션에서)을 던져서 ClassNotFoundException을 던지십시오.
@Path("/test")
public class DynamicWebClass {
@GET
@Path("/getFileExplorerNodes")
@Produces(MediaType.TEXT_PLAIN)
public String getFileExplorerNodes() {
try {
String directory = "C:\\Workspace\\ProjectMeteor\\src\\java\\com\\meteor\\loader";
File file = new File(directory);
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass("com.meteor.loader.ClassToBeLoaded");
Object o = cls.newInstance();
return o.getClass().toString();
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
}
출력 : -
java.lang.ClassNotFoundException가이 : 그것은 독립 실행 형 프로그램에서 잘 작동 될 때 웹 응용 프로그램에서 예외를 던지고 왜
을 com.meteor.loader.ClassToBeLoaded? 이 문제를 해결하고 웹 응용 프로그램에서 제대로 실행하려면 어떻게해야합니까?
수업이 전쟁에 포장되어 있는지 확인하십시오. – dasrohith
예. 그 계급은 전쟁 중에있다. 전쟁은 프로젝트의 dist 폴더 밑에 있습니다. –
그러나 C : /의 다른 디렉토리를 가리키고 있습니다. 상대 URL 제공 – dasrohith