동적으로로드 된 클래스에서 Java 클래스를 동적으로로드하는 데 문제가 있습니다.ImageJ 플러그인에서 클래스를 동적으로로드하는 중
내 수업은 ImageJ
플러그인이며 classloader
을 통해 다른 모듈을 동적으로로드합니다. ImageJ
플러그인과 동일한 패키지에있는 모듈을로드 할 때 NoClassDefFoundError
이 있습니다.
내가 정확히 할 것은 :
- ImageJ에로드 (A)를 플러그인
- (A) 취득 시스템 클래스 로더
- (A) 클래스 로더에 항아리 URL을 추가
- (A) 나는이
NoClassDefFoundError
를 얻을 수 있기 때문에 B 클래스를로드 할 수 없습니다입니다Class.forName
를 사용하여 항아리에 원하는 클래스 (B)를로드하려고 현재 클래스 로더에서 찾을 수없는 A의 클래스를 가리키는 B로 인해 발생합니다.
내 모듈을로드하고 이전에 ImageJ
에 의해로드 된 jar에 대한 참조를 찾을 수 있도록 첫 번째 위치에 플러그인을로드하는 데 사용되는 동일한 클래스 로더 ImageJ
을 사용해야한다고 생각합니다. ImageJ
을 다시 컴파일하지 않고이 작업을 수행하고 싶습니다.
ImageJ
코드를 나타내거나 수정해야 할 필요없이이 문제를 해결할 수있는 방법이 있습니까?
의사 클래스 예는
package a;
class A extends PlugInFrame {}
package a;
class C extends MyOwnPlugIn {}
package b;
import a;
class B extends C {}