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

Raspberry Pi 4上Java+Pi4J加载libgpiod.so失败求助

问题排查与解决方案

核心问题分析

运行Pi4J最小示例时出现unable to load [libgpiod.so] using path [lib/aarch64/pi4j-gpiod/libgpiod.so]错误,核心原因:

  • 系统未安装libgpiod依赖库,或Pi4J无法定位已安装的库文件
  • Pi4J架构识别逻辑偏差,误将树莓派4B的arm64架构识别为aarch64,导致路径匹配失败

分步解决方案

1. 确认系统架构并安装libgpiod依赖

  • 执行命令查看系统架构:
    dpkg --print-architecture
    
    树莓派4B 64位系统应返回arm64。
  • 检查是否已安装libgpiod:
    dpkg -l | grep libgpiod
    
    若未找到相关包,执行安装命令:
    sudo apt update && sudo apt install libgpiod-dev libgpiod2
    

2. 修正Pi4J的库路径识别问题

方法一:指定JVM参数强制架构/库路径

运行示例时添加以下参数(二选一即可):

  • 强制指定架构为arm64:
    sudo jbang -Dpi4j.arch=arm64 Pi4JMinimalExample.java
    
  • 直接指定libgpiod实际安装路径:
    sudo jbang -Dpi4j.library.path=/usr/lib/aarch64-linux-gnu Pi4JMinimalExample.java
    

方法二:创建软链接匹配Pi4J期望路径

若不想每次运行都加参数,可创建软链接让Pi4J找到库文件:

sudo mkdir -p /lib/aarch64/pi4j-gpiod
sudo ln -s /usr/lib/aarch64-linux-gnu/libgpiod.so /lib/aarch64/pi4j-gpiod/libgpiod.so

3. 修正错误的运行命令

你执行的sudo which jbang Pi4JMinimalExample.java是错误的,which jbang仅用于查找jbang安装路径,正确运行命令应为:

sudo jbang Pi4JMinimalExample.java

(访问GPIO硬件需root权限,必须加sudo)

4. 验证Pi4J版本兼容性

确保使用Pi4J v2.x及以上版本,v1.x对arm64架构支持不完善。若用maven管理项目,检查pom.xml中Pi4J依赖版本是否为最新稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:50:11