【发布时间】:2014-02-13 16:47:57
【问题描述】:
我写了这个简单的代码:
public class Test {
public static void main(String args[]) {
OculusRift oculusRift = new OculusRift();
oculusRift.init();
HMDInfo hdmInfo = oculusRift.getHMDInfo();
System.out.println(hdmInfo);
// while(oculusRift.isInitialized()){
//
// }
oculusRift.destroy();
}
}
但我得到了这个错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: de.fruitfly.ovr.OculusRift._initSubsystem()Z
at de.fruitfly.ovr.OculusRift._initSubsystem(Native Method)
at de.fruitfly.ovr.OculusRift.init(OculusRift.java:82)
at ec.test.test3.Test.main(Test.java:21)
Java Result: 1
我创建并包含了一个基于以下内容的库:
JRift-0.2.5.1.jar
JRiftLibrary-0.2.5.1.jar
JRiftLibrary-0.2.5.1-natives-windows.jar
来自here
缺少什么?
编辑:
通过提取 JRiftLibrary64.dll 并将其路径显式添加到 java 路径来强制
System.loadLibrary("JRiftLibrary64");
它有效..为什么在其他方式不起作用?
【问题讨论】:
-
我在 Linux 下的经历完全一样(所以我不得不将 .so 复制到库路径)。你真的知道这个 Rift 包装器是否有可用的资源?乍一看,虽然它与this(相同的命名空间)相同,但看起来它具有更多功能。
-
不幸的是,在这个主题上有一个巨大的碎片,很多 java 端口 sux,给很多问题,并没有提供你需要的一切。我发现唯一可靠的外观是来自 jherico,github.com/jherico/jocular
标签: java dll dependencies unsatisfiedlinkerror oculus