0

我必须将数据发送到串行端口,javax.comm 也包括在内,但它给出了错误“Caught java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path while loading driver gnu.io.RXTXCommDriver Error loading SolarisSerial: java. lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path 捕获 java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I 在加载驱动程序 com.sun 时。 comm.SolarisDriver"

我访问了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) {}
            }
        }
    }
}

}

4

1 回答 1

1

确保已设置串行库的库路径。尝试这个

java -Djava.library.path=C:\java_comm\lib SimpleWrite 

您似乎正在运行 32 位版本的 Netbeans 和(通过扩展)Java。因此请确保您有相应的 32 位版本的 rxtxserial,可以在这里找到

于 2014-02-14T23:05:40.697 回答