我们正在创建一个可运行的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目录。如果您需要有关该项目的任何代码信息,请告诉我们,但我认为这不会相关。
答案 0 :(得分:0)
您缺少本机运行时库。您可以使用apt-get来获取它包含的包来安装此库。为此,请提供此命令。
sudo apt-get install libc6-*
答案 1 :(得分:0)
我在为Arm安装最新的JDK 8 for Hard float时解决了这个问题。以前我尝试了几件事,我尝试使用版本2.6,2.7和2.8,指定LD_LIBRARY_PATH环境。变量,确保库在〜/ .jssc / linux等等所有这些都无济于事,只有在我升级了java之后,它才能完美无缺。
答案 2 :(得分:0)
即使使用最新版本,我也遇到了同样的错误。在我看来,事实证明JSSC正试图使用&#34;软浮动&#34;它从.jar文件中复制的本机库的版本。我最终用.jar文件中的硬浮点版本替换了该文件,并删除了对该文件的写入权限。之后一切都开始了。