Java 클래스를 동적으로로드하려고합니다. 기본 개념은 런타임에 동적으로로드되는 모듈이 jar에 포함되어 있다는 것입니다.
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { URL.class });
method.setAccessible(true);
method.invoke(moduleLoader, new Object[] { file.toURI().toURL() });
Class fooClass = moduleLoader.loadClass("com.coderunner.Foo");
Object foo = fooClass.newInstance();
모든 모듈이 @Module 주석 주석이 : 이것은 내가 (나는 그것이 해키 알고 있지만, 동적으로 항아리를 추가 할 수있는 다른 방법은 AFAIK 이미 존재하는 클래스 로더에 없음) 그것을 할 방법이다. 따라서 모듈에 대한 추가 정보를 얻기 위해 주석을 얻으려고합니다. 내가 여기에 무슨 조금 혼란하다고 말하고 문제는. foo는에 주석이 형이 com.sun의 것을 $ 프록시 $ (27) 대신 com.coderunner.Module이므로 내가 가지고
ClassCastException: Cannot cast com.sun.proxy.$Proxy42 (id=64) to com.coderunner.Module
를 얻을 수 . 내가하고 싶은 일이 가능한가? 방법?
편집 : 나는 봄/봄 - mvc 및 바람둥이 환경에서 이것을 시도하고 있음을 언급해야 할 수도 있습니다.
완벽하게 작동합니다. 감사합니다. –