You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4B舵机控制Java应用报错:com.pi4j.wiringpi.Gpio类未找到

问题:Pi4J运行时抛出NoClassDefFoundError(com/pi4j/wiringpi/Gpio)

我是一名Java开发者,同时也是Pi4J新手,正在Raspberry Pi 4 Model B上开发一款控制舵机的Java应用。运行时出现如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/pi4j/wiringpi/Gpio
at me.Olex7iMatix.CatBotSoftware.Main.main(Main.java:9)
Caused by: java.lang.ClassNotFoundException: com.pi4j.wiringpi.Gpio
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more

当前使用的JRE系统库为JavaSE-1.8,应用代码如下:

package me.Olex7iMatix.CatBotSoftware;

import com.pi4j.wiringpi.Gpio;

public class Main {

    public static void main(String[] args) {
        
        Gpio.pwmWrite(2, 50);
        
    }
    
}

解决步骤

  • 确认Pi4J依赖正确引入
    该错误是JVM无法找到指定的Pi4J类,说明项目依赖缺失或构建路径配置错误。若使用Maven,需在pom.xml中添加适配Java8的Pi4J核心依赖:

    <dependency>
        <groupId>com.pi4j</groupId>
        <artifactId>pi4j-core</artifactId>
        <version>1.2</version>
    </dependency>
    

    手动导入jar包时,需将pi4j-core.jar及对应本地库文件(.so)放入项目类路径。

  • 匹配Pi4J版本与Java版本
    Java8仅兼容Pi4J 1.x系列版本(如1.2),Pi4J 2.x及以上版本不再支持Java8,会导致类加载失败。

  • 安装树莓派上的WiringPi依赖
    Pi4J 1.x依赖WiringPi库,需在树莓派终端执行以下命令安装:

    sudo apt-get update
    sudo apt-get install wiringpi
    

    安装完成后可通过gpio -v验证是否成功。

  • 运行时指定完整类路径
    命令行运行Java程序时,需将Pi4J的jar包加入类路径:

    java -cp .:pi4j-core-1.2.jar me.Olex7iMatix.CatBotSoftware.Main
    

内容的提问来源于stack exchange,提问作者Olex7iMatix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:15:46