2013-02-28 134 views
1

我正在使用創建共享對象文件的外部C++庫(gdal/ogr),以便java可以利用它的功能。問題是我不確定我應該怎樣處理這些.so文件,以及我如何在構建項目時讓Maven使用它們。 我發現瞭如何將共享對象文件如何在maven項目中包含共享對象文件

但是當我跟着發出的指示,我得到這個錯誤this教程:

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文件以及它們是如何產生的請參閱以下link編譯帶有java綁定的gdal/ogr。

我只是尋找最強大的方法來包含這些文件,以便我可以在最大程度上在java中使用gdal/ogr庫,就像我使用任何其他普通java庫一樣。

回答

0

我認爲這個插件可以幫助您構建java項目。但是您仍然需要通知JVM本地文件在哪裏。

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)

你需要覆蓋(在同一個控制檯,然後再打開Eclipse或運行Java程序)

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

或添加到java命令:

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