我正在尝试使用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个小时但仍然没能惨遭解决它。
谢谢!
答案 0 :(得分:2)
最后得到了这个工作,添加以下内容并加载库OpenNI2.dll(目录到你机器上的任何地方或使用loadLibrary(),如果你想要一个相对路径)并且所有都将是快乐的,只希望OpenNI包括在内一个实际工作的Java样本!
static {
try {
System.load("C:\\Program Files\\OpenNI2\\Tools\\OpenNI2.dll");
}
catch (Exception e)
{
e.printStackTrace();
}
}