2

我们正在创建一个可运行的 java jar 以在 beagle bone black(运行 ubuntu)上运行。

我们创建了一个可运行的 jar,它在我们的 mac 和 pc(windows) 上运行良好,但不会在 ubuntu 系统上运行。我们在运行时不断收到以下错误:

    Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    Caused by: java.lang.UnsatisfiedLinkError: /home/ubuntu/.jssc/linux/libjSSC-2.6_armhf.so: /home/ubuntu/.jssc/linux/libjSSC-2.6_armhf.so: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
        at java.lang.Runtime.load0(Runtime.java:795)
        at java.lang.System.load(System.java:1062)
        at jssc.SerialNativeInterface.<clinit>(SerialNativeInterface.java:172)
        at jssc.SerialPort.<init>(SerialPort.java:118)
        at InputBoard.<init>(InputBoard.java:33)
        at InputBoard.main(InputBoard.java:22)
        ... 5 more

任何信息将不胜感激。正如我所说,这可以通过基于 unix 的 mac 上的终端正常运行,因此它似乎应该在 Ubuntu 上运行。我们不知道它为什么引用 /home/ubuntu 目录。如果您需要有关该项目的任何代码信息,请告诉我们,但我认为这不会相关。

4

3 回答 3

1

您缺少本机运行时库。您可以通过使用 apt-get 来获取它包含的包来安装这个库。为此,请给出此命令。

sudo apt-get install libc6-*
于 2014-04-30T11:04:51.500 回答
0

当我为 Arm 的 Hard float 安装最新的 JDK 8 时,我解决了这个问题。以前我尝试了几件事,我尝试使用版本 2.6、2.7 和 2.8,指定 LD_LIBRARY_PATH 环境。变量,确保库在〜/ .jssc/linux等中,等等所有这些都无济于事,只有在我升级java之后,它才能完美运行。

于 2015-07-04T00:27:33.430 回答
0

即使使用最新版本,我也有同样的错误。在我的情况下,事实证明 JSSC 试图使用它从 .jar 文件中复制出来的本机库的“软浮动”版本。我最终用 .jar 文件中的硬浮点版本替换了该文件,并删除了对该文件的写访问权限。在那之后一切都开始工作了。

于 2016-01-23T00:14:49.320 回答