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.path VM 参数。如何从 Eclipse 中设置 java.library.path中提供了相关说明

于 2013-03-20T23:51:32.677 回答
0

我找到了 64 位版本的librxtxSerial.so library. 我已经对其进行了测试,并且可以正常工作。

下载此文件并将其复制到/usr/lib folder

于 2013-08-13T13:41:07.210 回答