지정한 폴더에서 모든 클래스를로드하는 프로그램을 작성하고 있습니다.네이티브 코드 종속성을 사용하여 Java 클래스로드
일부 클래스는 정적 블록에 개체를 생성하고 있으며 이러한 개체는 생성하는 동안 일부 기본 호출을 생성합니다. 나는 네이티브 라이브러리가 없기 때문에 java.lang.UnsatisfiedLinkError를보고있다.
다음은 예제 시나리오이다.
Class A extends SuperA
{
public static B b = new B();
...
...
}
Class B
{
public B()
{
someNativeCall(); // Causing the LinkError
}
}
Class.forName("A"); // Loading of Class A
나는 B가 생성 된 경우 그래서 신경도하지 않는 등의 슈퍼 클래스와 같은 속성의 일부를 확인하거나 같은 많은 종류가있을 수 있기 때문에 을 :)하지 여기에 클래스 A를 로딩하고 있습니다 A 주어진 폴더에 A와 같은 클래스의로드가 실패하지 않도록하는 일반적인 방법이 있습니까?
업데이트 : 네이티브 라이브러리가 있어야하며 어떻게 추가해야하는지 알고 있습니다. 하지만 난 네이티브 라이브러리가 없으므로이 해킹을 요구하고 있습니다.
가, 할 수있다 우리는 B와 같은 모든 클래스를 식별하고 모의 B 객체를 삽입합니까? 나는 그것을 성취 할 수있는 방법을 모른다. – Varun
http://stackoverflow.com/questions/1029559/java-system-loadlibrarysomedllfile-gets-unstatisisfied-link-error – finnw
구현 한 솔루션 : javap은 프로그래밍 방식으로 액세스 할 수 있지만 API는 분명하지 않습니다. 마지막으로 http://jakarta.apache.org/bcel/manual.html에서 Java 리플렉션과 비슷한 명확한 API를 사용했습니다. – Varun