2

Java がその機能を利用できるように、共有オブジェクト ファイルを作成する外部 C++ ライブラリ (gdal/ogr) を使用しています。問題は、これらの .so ファイルで何をすべきか、プロジェクトをビルドするときに 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 ファイルとその生成方法のコンテキストについては、Java バインディングを使用した gdal/ogr のコンパイルに関する次のリンクを参照してください。

これらのファイルを含めるための最も堅牢な方法を探しているだけなので、他の通常の Java ライブラリと同じように、可能な限り Java で gdal/ogr ライブラリを使用できます。

4

1 に答える 1

0

このプラグインは、Java プロジェクトの構築に役立つと思います。ただし、ネイティブ ファイルの場所を JVM に通知する必要があります。

Eclipse の起動時に (オーバーライドする代わりに) ネイティブ ライブラリを「java.library.path」に追加する方法、または単純なものを参照してくださいJava ネイティブ/共有ライブラリ (.so) をロードする方法

オーバーライドする必要があります (Eclipse を開く前、または Java プログラムを実行する前に、同じコンソールで)

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

またはJavaコマンドに追加:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"
于 2013-03-01T07:31:24.830 に答える