1

我正在使用 LeapJava.jar 编写一个简单的 JDK 程序来与 Leap 交互。我大致遵循了这篇文章:在 Scala中为 Leap Motion 控制器开发,理论上这一切都非常简单。但是,当我尝试运行程序RuntimeException时,它会在尝试连接到 Leap 设备时失败:

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)

我已按照Leap 文档中的步骤进行操作,但由于我使用的是 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 上,文档很少)都会受到欢迎。

4

3 回答 3

1

复制项目(您当前的工作目录)文件夹中的 .dll 文件,因为它会在该特定文件夹中查找本机库。

于 2015-01-21T14:05:41.477 回答
0

来自 Leap Motion Linux 包中的自述文件:

Q. ...Sample.java 编译,但是在尝试运行时,我收到一个关于无法加载 libLeapJava.so 的错误

A. 如果没有一些指导,Java 似乎很难搜索本机库。尝试:LD_LIBRARY_PATH=。java -classpath .:LeapJava.jar 示例

看起来它假设 jar 文件和本机库与您的应用程序位于同一文件夹中。

于 2013-12-04T23:55:13.203 回答
0

通过执行以下操作,我在 Ubuntu 上的 Eclipse 中得到了滚动。

1)在Package Explorer区域中选择您的项目,然后右键单击它。

2)选择构建路径→配置构建路径...选项。

3) 在出现的窗口中,选择库选项卡。

4) 然后,展开 JRE System library 选项并选择 Native library location。

5) 点击右侧面板的编辑按钮

6) 单击外部文件夹。

7) 导航到您下载的 sdk .../LeapSDK/lib/x64

如果您使用的是 32 位系统,请使用 x86

您现在应该能够正确使用 LeapJava.jar。

于 2015-02-20T02:40:23.727 回答