我正在尝试运行简单的代码:
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,以确保这与权限没有问题 我尝试this但没有帮助。
答案 0 :(得分:1)
您还需要在类路径上使用.so文件。
您可以从http://rxtx.qbang.org/wiki/index.php/Download下载预构建的二进制文件,但不幸的是它们只能以32位格式提供。
如果您使用Eclipse,则只需将.so文件放在项目的根目录中即可。如果这不起作用,您可以尝试设置java.library.path VM参数。有关该说明,请访问How to set the java.library.path from Eclipse
答案 1 :(得分:0)
我找到了librxtxSerial.so library
的64位版本。我已经对它进行了测试,但它确实有效。
下载此文件并将其复制到/usr/lib folder