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 企业版、Java 1.7.0_21 和最新版本的 OpenNI 2。OpenNITest 是我放置示例应用程序的文件夹和包的名称。

如果有人对尝试解决此问题有任何建议,我将不胜感激,因为我已经使用了 3 个小时,但仍然无法解决它。

谢谢!

4

1 回答 1

2

最后得到这个工作,添加以下内容并加载库 OpenNI2.dll (目录到你机器上的任何地方,或者如果你想要一个相对路径,请使用 loadLibrary()),一切都会很愉快,只希望 OpenNI 包含一个实际工作Java示例!

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