我的Raspberry Pi(OS:Raspbian)和Java(JDK-7-Armhf)有一个严重的问题。 我的代码不会执行没有创build一个例外。 我会一直在阅读和尝试几个build议,但没有任何工作。 所以现在我很困惑什么地方出了问题..? 所以它是这样的:我有一个Java源代码将运行在我的Eclipes IDE。 但是,当我导出.jar文件,甚至与库(JRE系统lib。_86,JavaSE1.7,JAVAX.comm),作为“Runnabel JAR”或只是.JAR,并执行它om我的树莓派,我有“NoCLassDefFoundExecption:SerialPortEventListener ..!我只是不知道为什么,它不会find库和使用它..!在我的Pi我已经安装了librxtx-java和JDK-7-oracle-armhf。librxtx-java应该(我有一个文件夹/ usr / jni,它包含:librxtxSerial.so和/ usr / lib / jvm / jdk-7-oracle- armhf /)。
在Eclipse中查看库Javax.RXTXcomm,我已经得到了包含SerialPortEventListener的RXTXcomm.jar,所以它定义了.jar。 我正在考虑,我的Java JVM和linux串行端口驱动程序之间是否存在缺失的链接? 我的JRE以某种方式工作,因为它将执行一个代码来读出HOSTNAME&IP-Adress。 那么有没有人知道如何解决这个问题?
这是Javaexception的读取:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/SerialPortEventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Caused by: java.lang.ClassNotFoundException: javax.comm.SerialPortEventListener at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 13 more
我的代码的副本。 “SimpleRead.java”原文来自Java通信API样本
您必须在源代码中将引用从javax.comm更改为gnu.io。
尝试以下方法
sudo adduser username dialout
然后注销并从所有终端和GUI登录