2

Java と Kinect for Windows Sensor (Xbox バージョンではない) を使用して OpenNI 2 を使い始めようとしていますが、重大な問題が発生しています。

サンプルの SimpleViewer プログラムは正しく機能しますが、Java に相当するもの (SimpleViewer.java) を実行することができません。org.openni.jar をクラスパスに追加した後、正常にコンパイルされますが、プログラムを実行しようとすると、次のエラーに直面します。

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Open
NI2\Tools\OpenNI2.jni.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(Unknown Source)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.openni.NativeMethods.<clinit>(NativeMethods.java:44)
    at org.openni.OpenNI.initialize(OpenNI.java:113)
    at OpenNITest.SimpleViewerApplication.main(SimpleViewerApplication.java:

190)

同様の問題を読んだ後、問題を解決するために次のことを試みました.OpenNIで見つけることができたほとんどすべてのライブラリをToolsフォルダ(LibとTools/OpenNI2/Driversの内容)に入れました.正しい依存関係。

java -Djava.library.path="C:/Program Files/OpenNI2/Tools" OpenNITest.SimpleViewerApplication

Windows 7 Enterprise Edition、Java 1.7.0_21、および最新バージョンの OpenNI 2 を実行しています。OpenNITest は、サンプル アプリケーションを入れたフォルダーとパッケージの名前です。

誰かがこの問題を解決しようとするためのアドバイスを持っているなら、それは大歓迎です。

ありがとう!

4

1 に答える 1

2

最後にこれが機能するようになり、次を追加してライブラリOpenNI2.dllをロードします(マシン上の任意の場所へのディレクトリ、または相対パスが必要な場合はloadLibrary()を使用します)。すべてが陽気になります。OpenNIに実際に機能するジャバサンプル!

static {
    try {
        System.load("C:\\Program Files\\OpenNI2\\Tools\\OpenNI2.dll");
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}
于 2013-06-13T13:33:12.680 に答える