java - 线程 "main"java.lang.NoClassDefFoundError : com/pi4j/io/gpio/GpioFactory 中出现异常

标签 java

尝试运行我的 java 程序时出现这些错误

Exception in thread "main" java.lang.NoClassDefFoundError: com/pi4j/io/gpio/GpioFactory
        at FileWatch.main(FileWatch.java:53)
Caused by: java.lang.ClassNotFoundException: com.pi4j.io.gpio.GpioFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        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)
        ... 1 more

这是我的代码,

public class FileWatch {

        static String clkID;
        static String clkID2;
        static String ts;
        static String ts1;
        static boolean done = false;
        static boolean REdone = false;
        static boolean finished = false;
        static boolean ready;

        static String host ="jdbc:mysql://localhost/dancers";
        static String username ="root";
        static String password ="beaker19";


        public static void main(String[] args) throws IOException,
                        InterruptedException {

       // create gpio controller
        final GpioController gpio = GpioFactory.getInstance();

        // provision gpio pin #01 as an output pin and turn on
        final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.HIGH);


                while (true) {
                        done = false;
                        REdone=false;
                        checkFile();
                        pin.high();
                        Thread.sleep(3000);
                        REcheckFile();
                        Thread.sleep(500);
                        //Thread.
                        if (clkID.equals(clkID2)) {

                        uploadTimes();

                        }

                        else {
                                System.out.println("Wrong matching ID's");
                        }
                        Thread.sleep(1000);
                        pin.low();
                 }
}

我从未使用过 pi4j,所以我不知道我哪里出了问题! 这似乎是 gpiofactory 类的问题,但我没有对其进行任何更改,并且不确定我在互联网上阅读的内容是发生了什么,这是导入包的问题...

我是这样编译的:

pi@raspberrypi ~/rpi2ardu $ javac -cp .:mysql-connector-java-3.1.1.jar:/opt/pi4j/lib/'*' FileWatch.java

最佳答案

我解决了同样的问题。

找到您的应用 list 文件。默认情况下会创建一个,位于源代码树下 =>META-INF=>MANIFEST.MF

简单地,向其中添加一个类路径,即 pi4j JAR 文件所在的位置,它应该如下所示:

{        
    Manifest-Version: 1.0
    Main-Class: yourclassname.Main
    Class-Path: /opt/pi4j/lib/pi4j-core.jar /opt/pi4j/lib/pi4j-device.jar /opt/pi4j/lib/pi4j-gpio-extension.jar /opt/pi4j/lib/pi4j-service.jar
}

构建您的文件并执行它。

关于java - 线程 "main"java.lang.NoClassDefFoundError : com/pi4j/io/gpio/GpioFactory 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445695/

相关文章:

java - 在Java中创建数组的数组

java - 带有连接的查询结果在转换为 POJO 列表时会丢失顺序

java - 如何使用Java流计算List成员之间的变化?

java - 我应该在哪里放置字段/方法注释?

java - 结果传递失败 ResultInfo{who=null, request=2, result=0, data=null} camera

java - 在对象上同步

java - 如何计算列表中具有相同属性之一的自定义对象的数量

java - 使用ArrayList登录系统

java - java.lang.ArrayIndexOutOfBoundsException错误Hadoop MapReduce进程

java - Jersey - 验证不适用于查询参数