정적 초기화 블록에서 하나의 Windows DLL을로드하는 Java 응용 프로그램을 만들었습니다. 코드 조각은 아래와 같습니다 :System.loadLibrary() 정적 블록에서 예외를 반환합니다
// MyTestJava class starts
class MyTestJava
{
static
{
System.loadLibrary("MyLib");
}
} // MyTestJava class def ends here
나는 정적 블록에서 수행 라이브러리 초기화의 종류, JVM은 java.library.path
에서 검색해야한다고 들었습니다. 그래서 다음과 같이 JVM의 라이브러리 경로를 설정하고 폴더 아래에 MyLib.dll
을 넣습니다.
options[1].optionString = "-Djava.library.path=C:\\Libs";
Java 응용 프로그램에서 불행히도 불행하게도 Unsatisfied Link Error가 발생합니다.
죄송합니다. 실제로 options [1] .optionString은 API JNI_CreateJavaVM()에 대한 인수로 주어지며 C++ 프로그램에서 JVM을 시작합니다. 다른 API는 클래스 경로입니다. – Jaydhar