【发布时间】:2014-02-17 07:38:26
【问题描述】:
我必须将数据发送到串口,javax.comm 也包括在内,但它给出了错误 “在加载驱动程序 gnu.io.RXTXCommDriver 时捕获 java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path 加载 SolarisSerial 时出错:java.lang.UnsatisfiedLinkError:java.library.path 中没有 SolarisSerialParallel 在加载驱动程序 com.sun.comm.SolarisDriver 时捕获 java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I"
我在stackoverflow中访问了所有与串口数据读写相关的问题,但没有找到任何解决方案
你帮帮我
代码如下:
package serial;
import java.io.*;
import java.util.*;
import javax.comm.SerialPort;
import javax.comm.CommPortIdentifier;
import javax.comm.UnsupportedCommOperationException;
import javax.comm.PortInUseException;
public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM6")) {
//if (portId.getName().equals("/dev/term/a")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
} catch (PortInUseException e) {}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
try {
outputStream.write(messageString.getBytes());
} catch (IOException e) {}
}
}
}
}
}
【问题讨论】:
-
你设置库路径的位置了吗?
-
我将 javax.comm 的新库放在 C:\java_comm\lib 中,netbeans 安装在 C:\Program Files (x86)\NetBeans 7.0.1 中,但我也在项目属性中添加了库
标签: java serial-port serial-communication javax.comm