W10环境中使用JSSC的Java串行应用程序中的JRE崩溃

问题描述

我是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虚拟机以外的本机代码中。 请参阅有问题的框架以报告错误

退出代码1完成的过程

代码如下:

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...