【发布时间】:2013-11-30 18:48:24
【问题描述】:
我正在使用 LeapJava.jar 编写一个简单的 JDK 程序来与 Leap 交互。我大致遵循了这篇文章:Developing for the Leap Motion controller in Scala,理论上这一切都非常简单。但是,当我尝试运行该程序时,它会在尝试连接到 Leap 设备时以 RuntimeException 失败:
Native code library failed to load.
java.lang.UnsatisfiedLinkError: no LeapJava in java.library.path
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
我已按照the Leap documentation 中的步骤进行操作,但由于我使用的是 Ubuntu(和sbt),因此没有与这种情况直接相关的明确说明。我为 java.library.path 参数尝试了各种不同的参数:
- 指向项目中的 ./lib 目录(其中包含 LeapJava.jar)
- 使用 Leap SDK 的 lib 目录
- Leap SDK 的 lib 目录的绝对路径
- LeapSDK 的 lib 目录中的 x86 目录
- 将 LeapJava.jar 文件符号链接到 x86 目录并使用它
我在 IntelliJ(如上面链接的 Leap 文档中描述的设置)或从命令行运行它时遇到了同样的问题。例如
sbt -Djava.library.path=.:/<path to LeapSDK>/lib run
我已将 LeapJava.jar 添加到 sbt 的类路径中(它位于 lib 目录中),项目编译正常。
任何建议(尤其是我在 Linux 上,文档很少)都会受到欢迎。
【问题讨论】:
-
需要注意的一点:如果本机库是 32 位的,则需要使用 32 位的 JVM,如果是 64 位,则需要使用64 位 JVM。 32 位 JVM 无法加载 64 位本机库,反之亦然。
标签: scala leap-motion