找不到openni2.jni的依赖库 - OpenNI 2,Java,Kinect For Windows

时间:2013-06-11 11:38:48

标签: java kinect openni

我正在尝试使用Java和Kinect for Windows传感器(不是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企业版,Java 1.7.0_21和最新版本的OpenNI 2. OpenNITest是我放置示例应用程序的文件夹和包的名称。

如果有人对试图解决这个问题有任何建议,我将非常感激,因为我已经在这里工作了3个小时但仍然没能惨遭解决它。

谢谢!

1 个答案:

答案 0 :(得分:2)

最后得到了这个工作,添加以下内容并加载库OpenNI2.dll(目录到你机器上的任何地方或使用loadLibrary(),如果你想要一个相对路径)并且所有都将是快乐的,只希望OpenNI包括在内一个实际工作的Java样本!

static {
    try {
        System.load("C:\\Program Files\\OpenNI2\\Tools\\OpenNI2.dll");
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}