首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

RXTX 在 Linux (樹莓派) 上無法列舉串口問題排查

     編輯:程式設計綜合問答

現象描述

Windows 下 RXTX 串口通訊正常,移植至樹莓派 (Linux raspberrypi, /dev/ttyAMA0) 後,CommPortIdentifier.getPortIdentifiers() 回傳空列表,直接指定端口名拋出 NoSuchPortException。環境:Root 權限運行 Jar,RXTX 從源碼編譯安裝,xgcom 工具可正常收發。

常見原因與排查步驟

  1. RXTX 原生庫未正確載入:檢查 librxtxSerial.so 是否在 java.library.path 指定目錄(如 /usr/lib/jni),且架構匹配 (ARM)。
  2. 串口設備節點權限:雖為 Root,但確認 /dev/ttyAMA0 存在且屬於 dialout 群組。
  3. RXTX 配置文件缺失:需在 /etc 或 classpath 下提供 javax.comm.properties,內容指定驅動類:
    Driver=gnu.io.RXTXCommDriver
    
  4. Java 版本不匹配:確保 JDK 與 RXTX 原生庫編譯目標一致(如 OpenJDK 8 vs 11)。

替代方案建議

RXTX 維護停滯,推薦改用 jSerialComm:純 Java 實現,無原生庫依賴,跨平台穩定,API 更現代。Maven 坐標:com.fazecast:jSerialComm:2.10.4。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved