maven을 사용하여 jar 파일로 패키징 된 Java 라이브러리 (예 : project A
)에 기본 라이브러리 (Linux 공유 라이브러리 myLib.so
)를 포함하려고합니다. 항아리에 리소스로 기본 라이브러리를 추가했습니다 (항아리의 최상위 레벨).jar와 함께 제공되는 JNA 라이브러리로드하기
이제이 라이브러리를 다른 프로젝트 (project B
)에서 사용하려고합니다. Java 라이브러리에서 내 Object에 대한 메소드를 호출하면 라이브러리를 찾을 수 없습니다. 내 항아리와 공유 라이브러리를 제공하거나 내가 사용할 필요가 할 수있는, 그래서
public static void initLib() {
MyLib lib = (myLib) Native.loadLibrary("myLib.so"),MyLib.class);
}
: project A
요구에서
org.projectA.MyObject.initLib();
MyObject
같은 프로젝트에서
BI 통화 뭔가가 libarary에 액세스 할 수 리소스를 스트림으로 가져 와서 파일 시스템에 먼저 쓰는 것과 같은 해결 방법이 있습니까?
JNA는 jar 파일에서 압축을 풀고 디스크에 쓸 수있는 메소드를 제공합니다. ['Native.extractFromResourcePath()'] (http://java-native-access.github.io/jna/4.2.1/com/sun/jna/Native.html#extractFromResourcePath-java.lang.String-)를 참조하십시오. . – technomage