2013-02-28 3 views
1

java가 기능을 활용할 수 있도록 공유 객체 파일을 만드는 외부 C++ 라이브러리 (gdal/ogr)를 사용하고 있습니다. 문제는이 .so 파일을 어떻게 처리해야하는지, 프로젝트를 빌드 할 때 maven에 파일을 사용하게하려면 어떻게해야하는지 잘 모르겠습니다.maven 프로젝트에 공유 객체 파일을 포함하는 방법

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
    at java.lang.System.loadLibrary(System.java:1084) 
    at org.lwjgl.Sys$1.run(Sys.java:73) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) 
    at org.lwjgl.Sys.loadLibrary(Sys.java:95) 
    at org.lwjgl.Sys.<clinit>(Sys.java:112) 
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135) 
    at com.googlecode.nativedependencies.example.App.main(App.java:22) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
.so 파일 관련의 내용이 들어

그들이 어떻게 생성됩니다 나는 공유 객체 파일

하지만 주어진 지시를 수행 할 때, 난 그냥이 오류를 포함하는 방법에 this 자습서를 발견 , java 바인딩을 사용하여 gdal/ogr 컴파일시 다음 link을 참조하십시오.

나는 가장 일반적인 범위의 자바 라이브러리에서 gdal/ogr 라이브러리를 사용할 수 있도록 이러한 파일을 포함하는 가장 강력한 방법을 찾고있다.

답변

0

이 플러그인이 자바 프로젝트를 구축하는 데 도움이된다고 생각합니다. 하지만 여전히 네이티브 파일이 어디에 있는지 JVM에게 알릴 필요가 있습니다.

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}" 
:

당신은 (전에 열려있는 일식 같은 콘솔이나 자바 프로그램을 실행) 오버라이드 (override)

export LD_LIBRARY_PATH = "${workspace_loc}/lib:${LD_LIBRARY_PATH}" 

또는 java 명령에 추가 할 필요가 How to add native library to “java.library.path” with Eclipse launch (instead of overriding it) 또는 간단한 How to Load a Java Native/Shared Library (.so)

를 참조하십시오