런타임에 jar 파일을로드하는 동안 문제가 있습니다. 내 hotel.jar가로드되고 그것의 방법 (makeReservation는) 다음 코드를 사용하여 호출 : 문제는 내 jar 파일의 클래스 HotelPackage.HotelMgt에다른 jar 파일에 종속성이있는 jar 파일을로드 할 때의 문제
File file = new File("c:/ComponentFiles/hotel.jar");
URL jarfile = new URL("jar", "", "file:" + file.getAbsolutePath() + "!/");
URLClassLoader cl = URLClassLoader.newInstance(new URL[]{jarfile});
Class componentClass = cl.loadClass("HotelPackage.HotelMgt");
Object componentObject = componentClass.newInstance();
Method setMethod = componentClass.getDeclaredMethod("makeReservation", null);
setMethod.invoke(componentObject, null);
, 나는 다른 사람의 클래스 변수가를 클래스 (HotelPackage.Hotel)는 다른 jar 파일에 있습니다. 나는 열고 위와 같은 코드로 다른 jar 파일을로드하려고하지만 "기본"java.lang.NoClassDefFoundError가 클래스 데프 : 스레드 예외를 찾을 수없는 예외가 나타납니다 BeanPackage/호텔
을해결책은 무엇입니까?
이 경우 어쩌면 모든 항아리를 마스터 항아리에 넣으시겠습니까? 아마도이 프로젝트가 여러분에게 재미있을 것입니다 : http://one-jar.sourceforge.net/ – FunThomas424242