런타임 중에 jar 파일에서 클래스를 동적으로로드하고로드 할 패키지의 이름을 알 수있는 방법을 알아 내려고 노력했습니다. 나는 이것을 시도했다 : How to get all classes names in a package? 그것은 작동하지 않았다. 나는 나중에 jar 파일 밖의 프로그램을위한 것이라는 것을 깨달았다.Jar 파일에서 동적 클래스로드
Class<?>[] cls = loader.loadPackage("com.example.core");
처럼, 내가 정의 된 패키지의 모든 클래스를로드 할 수있는 방법을 볼 수 없습니다
URL[] urls = ....
URLClassLoader loader = new URLClassLoader(urls);
Class<?> cls = loader.loadClass("com.example.core.Main");
Module module = (Module) cls.newInstance();
그러나 : 나는 또한 내가 더 많이 좋아하는 또 다른 질문에서이 코드 조각을했다 이게 어떻게 가장 잘 해결됩니까? 나는 아주 조금 연구했고 나는 아마도 잘못된 방향으로 가고 있다고 생각했다. 궁극적으로는 패키지 이름 만 알지 못하고 패키지의 모든 클래스를로드하는 것이 더 간편한 "클래스 삭제"편집 방법입니다.
왜 특정 패키지의 모든 클래스를 맹목적으로로드하려고합니까? 어쨌든 정규화 된 클래스 이름을 아는 경우가 아니면 사용할 수 없습니다. –
객체를 객체로로드하고 할당 된 ID가있는 목록에 객체를 저장하는 또 다른 클래스가 있으며 코드를 실행하는 실제 클래스보다는 "정의"로 사용됩니다. 편집 : 그들은 또한 모두 같은 클래스를 확장, 그래서 그들은 내게 유용합니다. – Mad3ngineer
"코드를 실행하는 실제 클래스가 아닌 ...". 클래스를 사용하여 코드를 실행하지 않으려는 경우 클래스가 필요하지 않습니다. 원하는 효과를 얻는 방법은 거의 확실합니다. –