Авария среда JRE, на языке Java серийный приложение с АСК в W10 окружающей среды
Я новичок в Java, и при попытке запустить следующий код с библиотекой jssc-2.8.0, при методе "serialPort.openPort()" IntelliJ IDE аварийно завершает работу и сообщает:
2020.2.2\lib\idea_rt.jar=51870:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.2\bin" -Dfile.encoding=UTF-8 -classpath D:\MisDesarrollos\Java\RS232-jssc\out\production\RS232-jssc;D:\MisDesarrollos\Java\RS232-jssc\lib\jssc-2.8.0.jar com.rdm.Main COM3 Opening port COM3 ... # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=11596, tid=5204 # # JRE version: Java(TM) SE Runtime Environment (14.0.2+12) (build 14.0.2+12-46) # Java VM: Java HotSpot(TM) 64-Bit Server VM (14.0.2+12-46, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [jSSC-2.8_x86_64.dll+0xb5db] # # No core dump will be written. Minidumps are not enabled by default on client versions of Windows # # An error report file with more information is saved as: # D:\MisDesarrollos\Java\RS232-jssc\hs_err_pid11596.log # # If you would like to submit a bug report, please visit: # https://bugreport.java.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. #
Процесс завершился с кодом выхода 1
Что я уже пробовал:
== ГЛАВНЫЙ.ЯВА ====================================================================
package com.rdm; 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); } } }
== PORTREADER.ЯВА ==============================================================
package com.rdm; 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); } } } }
Richard MacCutchan
Возможно, у вас нет разрешения на доступ к порту COM3. Однако предоставленной информации недостаточно, чтобы сделать больше, чем догадаться.