동적 로딩 문제 프로그램이 JAR에서 실행될 때
-
05-07-2019 - |
문제
주어진 인터페이스를 준수하는 Java 클래스를 통해 확장 가능한 응용 프로그램이 있습니다. 명령 줄 클래스에서 프로그램을 실행하면 다음을 사용하여 애드온 클래스를 인스턴스화 할 수 있습니다.
Class.forName("myAddon").newInstance();
그러나 응용 프로그램을 종료하면 (메인 클래스를 올바르게 설정 함) 클래스가 예외를 찾을 수 없습니다. 누구든지 여기서 무슨 일이 일어나고 있는지에 대해 약간의 빛을 발할 수 있습니까?
티아, 아담
해결책
UrlClassLoader를 사용 하여이 작업을 수행하여 검색 경로를 다음과 같이 현재 디렉토리로 지정했습니다.
URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});
모든 도움에 감사드립니다.
아담
다른 팁
당신이 찾고있는 수업은 클래스 경로에 없습니다. 디렉토리에있는 경우
즉, myclass.class myjar.jar
해야 할 일 :
java -classpath . -jar MyJar.jar
그러나 실제로 우리는 질문에 답하기 위해 더 많은 정보가 필요합니다. Jar Manifest에서 설정된 메인 클래스는 무엇입니까? 당신의 클래스 경로는 무엇입니까? 로드 할 클래스를 어떻게 지정합니까?
제휴하지 않습니다 StackOverflow