1

私は単純なコードを実行しようとしています:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier; 
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent; 
import gnu.io.SerialPortEventListener; 
import java.util.Enumeration;


public class SerialTest implements SerialPortEventListener {
SerialPort serialPort;
private BufferedReader input;
private OutputStream output;
private static final int TIME_OUT = 2000;
private static final int DATA_RATE = 9600;

public void initialize() {
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
System.out.println( "a " + currPortId.getName());
}
}

public synchronized void close() {
//...
}

public synchronized void serialEvent(SerialPortEvent oEvent) {
// ...
}

public static void main(String[] args) throws Exception {
SerialTest main = new SerialTest();
main.initialize();
}
}

私のシステムで利用可能なCOMポートがリストされるはずです。私は 3.2.0-39-generic #62-Ubuntu x86_64 x86_64 x86_64 GNU/Linux および Java 1.6 に取り組んでいます

最初に apt-get リポジトリから RXTX をインストールしましたが、問題が発生した後、ソースからインストールしてもまだ機能しません。すべての ttyS* で chmod 777 を作成して、これがパーミッションに問題がないことを確認します。
私はこれを試してみましたが、役に立ちません。

4

2 に答える 2

1

クラスパスにも.soファイルが必要です。

ビルド済みのバイナリはhttp://rxtx.qbang.org/wiki/index.php/Downloadからダウンロードできます。残念ながら、32ビットでしか利用できません。

Eclipseを使用している場合は、プロジェクトのルートに.soファイルをドロップするだけで、機能するはずです。それでも問題が解決しない場合は、java.library.pathVM引数を設定してみてください。その手順は、Eclipseからjava.library.pathを設定する方法にあります。

于 2013-03-20T23:51:32.677 に答える
0

の 64 ビット バージョンを見つけましたlibrxtxSerial.so library。私はそれをテストしましたが、動作します。

このファイルをダウンロードして、/usr/lib folder

于 2013-08-13T13:41:07.210 に答える