问题描述
我是Java新手,尝试使用jssc-2.8.0库运行以下代码时,IntelliJ IDE崩溃并报告:“ serialPort.openPort()”方法。
Java运行时环境检测到致命错误:
EXCEPTION_ACCESS_VIOLATION(0xc0000005)at pc = 0x000000007110b5db,pid = 11596,tid = 5204
JRE版本:Java(TM)SE运行时环境(14.0.2 + 12)(内部版本14.0.2 + 12-46) Java VM:Java HotSpot(TM)64位服务器VM(14.0.2 + 12-46,混合模式,共享,分层,压缩的oops,g1 gc,windows-amd64) 有问题的框架: C [jSSC-2.8_x86_64.dll + 0xb5db]
将不写入核心转储。默认情况下,Windows客户端版本上未启用小型转储
包含更多信息的错误报告文件另存为: D:\ MisDesarrollos \ Java \ RS232-jssc \ hs_err_pid11596.log
如果您要提交错误报告,请访问: https://bugreport.java.com/bugreport/crash.jsp 崩溃发生在Java虚拟机以外的本机代码中。 请参阅有问题的框架以报告错误。
源代码如下:
import jssc.*;
public class Main {
public static void main(String[] args) {
// Pass port number thru argument
String port = args[0];
SerialPort serialPort = new SerialPort(port);
try {
System.out.println("opening port " + port + " ...");
serialPort.openPort();
serialPort.setParams(SerialPort.BAUdratE_9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);
serialPort.writeString("COM3 opened !!!");
PortReader portReader = new PortReader(serialPort);
serialPort.addEventListener(portReader,SerialPort.MASK_RXCHAR);
serialPort.closePort();
} catch (Exception e) {
System.out.println("There are an error on writing string to port т: " + e);
}
}
}
import jssc.*;
public class PortReader implements SerialPortEventListener {
SerialPort serialPort;
public PortReader(SerialPort serialPort) {
this.serialPort = serialPort;
}
@Override
public void serialEvent(SerialPortEvent event) {
System.out.println("started");
if (event.isRXCHAR() && event.getEventValue() > 0) {
try {
String receivedData = serialPort.readString(event.getEventValue());
System.out.println("Received response: " + receivedData);
} catch (SerialPortException ex) {
System.out.println("Error in receiving string from COM-port: " + ex);
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)