Java 使用 RxTx 侦听的 COM 端口 EXCEPTION_ACCESS_VIOLATION

Java COM port listening with RxTx EXCEPTION_ACCESS_VIOLATION

我正在尝试编写一个 java 程序来从某个 COM 端口 (COM3) 读取数据。作为旁注:数据从 raspberry pi 发送到 XBee。 XBee 将其发送到另一个通过 USB 与笔记本电脑连接的 XBee。

我正在使用 java RxTx 库来监听 COM 端口。该程序运行良好,但在第 97 行崩溃:

int numBytes = inputStream.read(readBuffer);

第 95 和 96 行工作正常,它打印出正确的发送字节数(如果我评论第 97 行):

try {
    while (inputStream.available() > 0) {
        System.out.println("Number of bytes in inputstream = " + inputStream.available() + ".");

但是,如果我取消注释第 97 行,程序会在发送数据时立即崩溃。它给了我: "EXCEPTION_ACCES_VIOLATION (0xc0000005) at pc=0x0000000180005b00, pid=15436, tid=4052." 并且它生成了一个错误报告。我将错误报告包含在 java 代码下。

java代码:

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;

public class SerialPortDataRead implements Runnable, SerialPortEventListener {
    static CommPortIdentifier portId;
    static Enumeration portList;

    InputStream inputStream;
    SerialPort serialPort;
    Thread readThread;

    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("COM3")) {
                    System.out.println("\nportId.getName() == COM3. Trying to make connection...\n");
                    SerialPortDataRead reader = new SerialPortDataRead();
                }
            }
        }
    }

    public SerialPortDataRead() {
        try {
            serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
            System.out.println("Port 'COM3' is opened!");
        } catch (gnu.io.PortInUseException e) {System.out.println(e);}
        try {
            inputStream = serialPort.getInputStream();
            System.out.println("Receiving input stream...");
        } catch (IOException e) {System.out.println(e);}
        try {
            serialPort.addEventListener(this);
            System.out.println("Listening for events on port 'COM3'...");
        } catch (TooManyListenersException e) {System.out.println(e);}
        serialPort.notifyOnDataAvailable(true);
        try {
            serialPort.setSerialPortParams(9600,
                    SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE);
            System.out.println("Port parameters for 'COM3' are set!");
        } catch (UnsupportedCommOperationException e) {System.out.println(e);}
        readThread = new Thread(this);
        System.out.println("New thread created (readThread).");
        readThread.start();
        System.out.println("New thread started (readThread).");
    }

    @Override
    public void run() {
        try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {System.out.println(e);}
    }

    @Override
    public void serialEvent(SerialPortEvent serialPortEvent) {
        switch (serialPortEvent.getEventType()) {
            case SerialPortEvent.BI:
                System.out.println("Serial Port Event: BI.");
            case SerialPortEvent.OE:
                System.out.println("Serial Port Event: OE.");
            case SerialPortEvent.FE:
                System.out.println("Serial Port Event: FE.");
            case SerialPortEvent.PE:
                System.out.println("Serial Port Event: PE.");
            case SerialPortEvent.CD:
                System.out.println("Serial Port Event: CD.");
            case SerialPortEvent.CTS:
                System.out.println("Serial Port Event: CTS.");
            case SerialPortEvent.DSR:
                System.out.println("Serial Port Event: DSR.");
            case SerialPortEvent.RI:
                System.out.println("Serial Port Event: RI.");
            case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
                System.out.println("Serial Port Event: OUTPUT_BUFFER_EMPTY.");
                break;
            case SerialPortEvent.DATA_AVAILABLE:
                System.out.println("Serial Port Event: DATA_AVAILABLE.");
                byte [] readBuffer = new byte [20];

                try {
                    while (inputStream.available() > 0) {
                        System.out.println("Number of bytes in inputstream = " + inputStream.available() + ".");
                        int numBytes = inputStream.read(readBuffer);
                    }
                    System.out.println(new String(readBuffer));
                } catch (IOException e) {System.out.println(e);}
                break;
        }
    }
}
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180005b00, pid=15436, tid=4052
#
# JRE version: Java(TM) SE Runtime Environment (12.0.1+12) (build 12.0.1+12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (12.0.1+12, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [rxtxSerial.dll+0x5b00]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://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.
#

---------------  S U M M A R Y ------------

Command Line: -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\lib\idea_rt.jar=15663:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\bin -Dfile.encoding=UTF-8 SerialPortDataRead

Host: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, 8 cores, 15G,  Windows 10 , 64 bit Build 18362 (10.0.18362.329)
Time: Sat Apr 11 17:39:16 2020 Romance (zomertijd) elapsed time: 70 seconds (0d 0h 1m 10s)

---------------  T H R E A D  ---------------

Current thread (0x00000224ab664800):  JavaThread "Thread-0" [_thread_in_native, id=4052, stack(0x000000b2b0d00000,0x000000b2b0e00000)]

Stack: [0x000000b2b0d00000,0x000000b2b0e00000],  sp=0x000000b2b0dfdf00,  free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [rxtxSerial.dll+0x5b00]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  gnu.io.RXTXPort.readArray([BII)I+0
j  gnu.io.RXTXPort$SerialInputStream.read([BII)I+212
j  gnu.io.RXTXPort$SerialInputStream.read([B)I+60
j  SerialPortDataRead.serialEvent(Lgnu/io/SerialPortEvent;)V+83
j  gnu.io.RXTXPort.sendEvent(IZ)Z+382
v  ~StubRoutines::call_stub
j  gnu.io.RXTXPort.eventLoop()V+0
j  gnu.io.RXTXPort$MonitorThread.run()V+12
v  ~StubRoutines::call_stub

siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0xffffffffb0dfe9f8


Register to memory mapping:

RIP=0x0000000180005b00 rxtxSerial.dll
RAX=0x0000000000000001 is an unknown value
RBX=0x0 is NULL
RCX=0x000000018001d4d5 rxtxSerial.dll
RDX=0xfffffffffffff665 is an unknown value
RSP=0x000000b2b0dfdf00 is pointing into the stack for thread: 0x00000224ab664800
RBP=0x00000000ffffffff is an unknown value
RSI=0x0 is NULL
RDI=0x00000224ab664b30 points into unknown readable memory: e0 1d d7 a8 fe 7f 00 00
R8 =0x0000000000000002 is an unknown value
R9 =0xfffffffffffff63c is an unknown value
R10=0x00007ffea874b800 jvm.dll
R11=0x8101010101010100 is an unknown value
R12=0xffffffffb0dfe9f0 is an unknown value
R13=0x0000000000000001 is an unknown value
R14=0x000000b2b0dfe0f0 is pointing into the stack for thread: 0x00000224ab664800
R15=0x0 is NULL


Registers:
RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x000000018001d4d5, RDX=0xfffffffffffff665
RSP=0x000000b2b0dfdf00, RBP=0x00000000ffffffff, RSI=0x0000000000000000, RDI=0x00000224ab664b30
R8 =0x0000000000000002, R9 =0xfffffffffffff63c, R10=0x00007ffea874b800, R11=0x8101010101010100
R12=0xffffffffb0dfe9f0, R13=0x0000000000000001, R14=0x000000b2b0dfe0f0, R15=0x0000000000000000
RIP=0x0000000180005b00, EFLAGS=0x0000000000010202

Top of Stack: (sp=0x000000b2b0dfdf00)
0x000000b2b0dfdf00:   0000000000000000 0000000000000000
0x000000b2b0dfdf10:   0000000000000000 00000224ab664b30
0x000000b2b0dfdf20:   0000000000000000 000000b2b0dfe0f0
0x000000b2b0dfdf30:   00000224aaf1a658 0000000000000001
0x000000b2b0dfdf40:   00000224ab664b30 0000000000000001
0x000000b2b0dfdf50:   ffffffffffffffff 0000000180006211
0x000000b2b0dfdf60:   00000224ab6668a0 ffffffffffffffff
0x000000b2b0dfdf70:   0000000000000001 00000224ab6668a0
0x000000b2b0dfdf80:   0000022400000001 00007ffeffffffff
0x000000b2b0dfdf90:   000000b2b0dfe0f8 000000b2b0dfe0f8
0x000000b2b0dfdfa0:   00000224aaf1a658 00000224ab664800
0x000000b2b0dfdfb0:   00000224ab4e5f90 00007ffea86f68c3
0x000000b2b0dfdfc0:   000000b2b0dfe650 0000000000000140
0x000000b2b0dfdfd0:   0000000000000140 0000109e0097b979
0x000000b2b0dfdfe0:   00000224aaf1a660 00000224aaf1a658
0x000000b2b0dfdff0:   00000224ab664800 000000b2b0dfe0f8 

Instructions: (pc=0x0000000180005b00)
0x0000000180005ae0:   15 23 7a 01 00 48 8d 48 60 e8 3a 5d 00 00 4c 8b
0x0000000180005af0:   e5 8b ac 24 88 00 00 00 44 8b ac 24 80 00 00 00
0x0000000180005b00:   45 8b 74 24 08 41 89 5c 24 08 41 8b fd 85 ed 78
0x0000000180005b10:   09 ff 15 e9 14 01 00 44 8b f8 45 85 ed 7e 4a 90 


Stack slot to memory mapping:
stack at sp + 0 slots: 0x0 is NULL
stack at sp + 1 slots: 0x0 is NULL
stack at sp + 2 slots: 0x0 is NULL
stack at sp + 3 slots: 0x00000224ab664b30 points into unknown readable memory: e0 1d d7 a8 fe 7f 00 00
stack at sp + 4 slots: 0x0 is NULL
stack at sp + 5 slots: 0x000000b2b0dfe0f0 is pointing into the stack for thread: 0x00000224ab664800
stack at sp + 6 slots: 0x00000224aaf1a658 is pointing into metadata
stack at sp + 7 slots: 0x0000000000000001 is an unknown value


---------------  P R O C E S S  ---------------

Threads class SMR info:
_java_thread_list=0x00000224ab56df70, length=12, elements={
0x00000224aaad8000, 0x00000224aaadb000, 0x00000224aaafa800, 0x00000224aaafb800,
0x00000224aaafe000, 0x00000224ab38a000, 0x00000224ab398000, 0x00000224ab381000,
0x00000224ab553000, 0x00000224ab553800, 0x00000224ab664800, 0x000002248714a000
}

Java Threads: ( => current thread )
  0x00000224aaad8000 JavaThread "Reference Handler" daemon [_thread_blocked, id=4676, stack(0x000000b2b0500000,0x000000b2b0600000)]
  0x00000224aaadb000 JavaThread "Finalizer" daemon [_thread_blocked, id=15876, stack(0x000000b2b0600000,0x000000b2b0700000)]
  0x00000224aaafa800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=10680, stack(0x000000b2b0700000,0x000000b2b0800000)]
  0x00000224aaafb800 JavaThread "Attach Listener" daemon [_thread_blocked, id=1472, stack(0x000000b2b0800000,0x000000b2b0900000)]
  0x00000224aaafe000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=2956, stack(0x000000b2b0900000,0x000000b2b0a00000)]
  0x00000224ab38a000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=4168, stack(0x000000b2b0a00000,0x000000b2b0b00000)]
  0x00000224ab398000 JavaThread "Sweeper thread" daemon [_thread_blocked, id=712, stack(0x000000b2b0b00000,0x000000b2b0c00000)]
  0x00000224ab381000 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=19676, stack(0x000000b2b0c00000,0x000000b2b0d00000)]
  0x00000224ab553000 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=2040, stack(0x000000b2b0e00000,0x000000b2b0f00000)]
  0x00000224ab553800 JavaThread "Service Thread" daemon [_thread_blocked, id=9476, stack(0x000000b2b0f00000,0x000000b2b1000000)]
=>0x00000224ab664800 JavaThread "Thread-0" [_thread_in_native, id=4052, stack(0x000000b2b0d00000,0x000000b2b0e00000)]
  0x000002248714a000 JavaThread "DestroyJavaVM" [_thread_blocked, id=18784, stack(0x000000b2afe00000,0x000000b2aff00000)]

Other Threads:
  0x00000224aaad6800 VMThread "VM Thread" [stack: 0x000000b2b0400000,0x000000b2b0500000] [id=2128]
  0x00000224ab559800 WatcherThread [stack: 0x000000b2b1000000,0x000000b2b1100000] [id=3848]
  0x00000224871b1000 GCTaskThread "GC Thread#0" [stack: 0x000000b2aff00000,0x000000b2b0000000] [id=2932]
  0x00000224871cb800 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000b2b0000000,0x000000b2b0100000] [id=12048]
  0x00000224871cd000 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000b2b0100000,0x000000b2b0200000] [id=10912]
  0x00000224aa9ca800 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000b2b0200000,0x000000b2b0300000] [id=716]
  0x00000224aa9cb800 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000b2b0300000,0x000000b2b0400000] [id=20468]

Threads with active compile tasks:

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Compilation events (10 events):
Event: 1.025 Thread 0x00000224ab38a000 nmethod 295 0x000002248fb59a90 code [0x000002248fb59c60, 0x000002248fb59e10]
Event: 1.025 Thread 0x00000224ab38a000  296       3       java.util.Properties::saveConvert (434 bytes)
Event: 1.027 Thread 0x00000224ab38a000 nmethod 296 0x000002248fb59e90 code [0x000002248fb5a380, 0x000002248fb5c5d0]
Event: 1.072 Thread 0x00000224aaafe000 nmethod 286 0x0000022497033f90 code [0x00000224970341a0, 0x00000224970355f8]
Event: 1.072 Thread 0x00000224aaafe000  293       4       java.lang.AbstractStringBuilder::ensureCapacityInternal (39 bytes)
Event: 1.081 Thread 0x00000224aaafe000 nmethod 293 0x0000022497035c10 code [0x0000022497035dc0, 0x00000224970361a8]
Event: 1.081 Thread 0x00000224aaafe000  297       4       java.lang.StringBuilder::append (8 bytes)
Event: 1.088 Thread 0x00000224aaafe000 nmethod 297 0x0000022497036310 code [0x00000224970364c0, 0x0000022497036988]
Event: 1.088 Thread 0x00000224aaafe000  298       4       java.lang.AbstractStringBuilder::append (77 bytes)
Event: 1.093 Thread 0x00000224aaafe000 nmethod 298 0x0000022497036c10 code [0x0000022497036dc0, 0x0000022497037268]

GC Heap History (0 events):
No events

Deoptimization events (5 events):
Event: 0.134 Thread 0x000002248714a000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002249702d86c method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 152 c2
Event: 0.142 Thread 0x000002248714a000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000002249702e4a4 method=java.lang.String.isLatin1()Z @ 10 c2
Event: 1.022 Thread 0x00000224aaafb800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002249702d86c method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 152 c2
Event: 1.022 Thread 0x00000224aaafb800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002249702d86c method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 152 c2
Event: 1.022 Thread 0x00000224aaafb800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002249702d86c method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 152 c2

Classes redefined (0 events):
No events

Internal exceptions (4 events):
Event: 0.155 Thread 0x000002248714a000 Exception <a 'java/io/FileNotFoundException'{0x0000000711b28b98}> (0x0000000711b28b98) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]
Event: 0.292 Thread 0x000002248714a000 Exception <a 'java/io/FileNotFoundException'{0x0000000711b3a860}> (0x0000000711b3a860) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]
Event: 0.294 Thread 0x000002248714a000 Exception <a 'java/io/FileNotFoundException'{0x0000000711b48cc8}> (0x0000000711b48cc8) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]
Event: 0.509 Thread 0x000002248714a000 Exception <a 'java/io/FileNotFoundException'{0x0000000711b5a3b0}> (0x0000000711b5a3b0) thrown at [t:/workspace/open/src/hotspot/share/prims/jni.cpp, line 615]

Events (10 events):
Event: 1.022 Thread 0x00000224aaafb800 DEOPT PACKING pc=0x000002249702d86c sp=0x000000b2b08fe780
Event: 1.022 Thread 0x00000224aaafb800 DEOPT UNPACKING pc=0x000002248f579c2f sp=0x000000b2b08fe700 mode 2
Event: 1.022 Thread 0x00000224aaafb800 Uncommon trap: trap_request=0xffffffde fr.pc=0x000002249702d86c relative=0x00000000000007ec
Event: 1.022 Thread 0x00000224aaafb800 DEOPT PACKING pc=0x000002249702d86c sp=0x000000b2b08fe780
Event: 1.022 Thread 0x00000224aaafb800 DEOPT UNPACKING pc=0x000002248f579c2f sp=0x000000b2b08fe700 mode 2
Event: 1.022 loading class java/util/LinkedHashMap$LinkedKeySet
Event: 1.023 loading class java/util/LinkedHashMap$LinkedKeySet done
Event: 20.556 Executing VM operation: RevokeBias
Event: 20.556 Executing VM operation: RevokeBias done
Event: 20.556 Thread 0x00000224ab665000 Thread exited: 0x00000224ab665000


Dynamic libraries:
0x00007ff658e60000 - 0x00007ff658e6f000     C:\Program Files\Java\jdk-12.0.1\bin\java.exe
0x00007ffec3640000 - 0x00007ffec3830000     C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffec28d0000 - 0x00007ffec2982000     C:\WINDOWS\System32\KERNEL32.DLL
0x00007ffec05d0000 - 0x00007ffec0873000     C:\WINDOWS\System32\KERNELBASE.dll
0x00007ffec0a80000 - 0x00007ffec0b7a000     C:\WINDOWS\System32\ucrtbase.dll
0x00007ffeba0f0000 - 0x00007ffeba106000     C:\Program Files\Java\jdk-12.0.1\bin\VCRUNTIME140.dll
0x00007ffeba110000 - 0x00007ffeba128000     C:\Program Files\Java\jdk-12.0.1\bin\jli.dll
0x00007ffec3340000 - 0x00007ffec33e3000     C:\WINDOWS\System32\ADVAPI32.dll
0x00007ffec16f0000 - 0x00007ffec178e000     C:\WINDOWS\System32\msvcrt.dll
0x00007ffec3560000 - 0x00007ffec35f7000     C:\WINDOWS\System32\sechost.dll
0x00007ffec25e0000 - 0x00007ffec2700000     C:\WINDOWS\System32\RPCRT4.dll
0x00007ffec2c00000 - 0x00007ffec2d94000     C:\WINDOWS\System32\USER32.dll
0x00007ffec0880000 - 0x00007ffec08a1000     C:\WINDOWS\System32\win32u.dll
0x00007ffec2480000 - 0x00007ffec24a6000     C:\WINDOWS\System32\GDI32.dll
0x00007ffec1520000 - 0x00007ffec16b4000     C:\WINDOWS\System32\gdi32full.dll
0x00007ffeaf310000 - 0x00007ffeaf595000     C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.720_none_e6beb5c51314836b\COMCTL32.dll
0x00007ffec09e0000 - 0x00007ffec0a7e000     C:\WINDOWS\System32\msvcp_win.dll
0x00007ffec3000000 - 0x00007ffec3336000     C:\WINDOWS\System32\combase.dll
0x00007ffec0960000 - 0x00007ffec09e0000     C:\WINDOWS\System32\bcryptPrimitives.dll
0x00007ffeba440000 - 0x00007ffeba44a000     C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ffec1790000 - 0x00007ffec17be000     C:\WINDOWS\System32\IMM32.DLL
0x00007ffeb9790000 - 0x00007ffeb983a000     C:\Program Files\Java\jdk-12.0.1\bin\msvcp140.dll
0x00007ffea8360000 - 0x00007ffea8ed4000     C:\Program Files\Java\jdk-12.0.1\bin\server\jvm.dll
0x00007ffec1910000 - 0x00007ffec1918000     C:\WINDOWS\System32\PSAPI.DLL
0x00007ffea5270000 - 0x00007ffea5279000     C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ffec33f0000 - 0x00007ffec345f000     C:\WINDOWS\System32\WS2_32.dll
0x00007ffeba9b0000 - 0x00007ffeba9d4000     C:\WINDOWS\SYSTEM32\WINMM.dll
0x00007ffeba980000 - 0x00007ffeba9ad000     C:\WINDOWS\SYSTEM32\winmmbase.dll
0x00007ffec0ba0000 - 0x00007ffec0bea000     C:\WINDOWS\System32\cfgmgr32.dll
0x00007ffec0530000 - 0x00007ffec0541000     C:\WINDOWS\System32\kernel.appcore.dll
0x00007ffeb9c60000 - 0x00007ffeb9c71000     C:\Program Files\Java\jdk-12.0.1\bin\verify.dll
0x00007ffebede0000 - 0x00007ffebefd4000     C:\WINDOWS\SYSTEM32\DBGHELP.DLL
0x00007ffe9d6a0000 - 0x00007ffe9d6ca000     C:\WINDOWS\SYSTEM32\dbgcore.DLL
0x00007ffeb9c30000 - 0x00007ffeb9c56000     C:\Program Files\Java\jdk-12.0.1\bin\java.dll
0x00007ffebb560000 - 0x00007ffebb56e000     C:\Program Files\Java\jdk-12.0.1\bin\instrument.dll
0x00007ffeb9c10000 - 0x00007ffeb9c27000     C:\Program Files\Java\jdk-12.0.1\bin\zip.dll
0x00007ffebb520000 - 0x00007ffebb52a000     C:\Program Files\Java\jdk-12.0.1\bin\jimage.dll
0x00007ffec1920000 - 0x00007ffec2005000     C:\WINDOWS\System32\SHELL32.dll
0x00007ffec2da0000 - 0x00007ffec2e49000     C:\WINDOWS\System32\shcore.dll
0x00007ffec0da0000 - 0x00007ffec1520000     C:\WINDOWS\System32\windows.storage.dll
0x00007ffec05a0000 - 0x00007ffec05c3000     C:\WINDOWS\System32\profapi.dll
0x00007ffec0550000 - 0x00007ffec059a000     C:\WINDOWS\System32\powrprof.dll
0x00007ffec0500000 - 0x00007ffec0510000     C:\WINDOWS\System32\UMPDC.dll
0x00007ffec2a40000 - 0x00007ffec2a92000     C:\WINDOWS\System32\shlwapi.dll
0x00007ffec0b80000 - 0x00007ffec0b97000     C:\WINDOWS\System32\cryptsp.dll
0x00007ffeb9ac0000 - 0x00007ffeb9ad9000     C:\Program Files\Java\jdk-12.0.1\bin\net.dll
0x00007ffeb4000000 - 0x00007ffeb40f1000     C:\WINDOWS\SYSTEM32\WINHTTP.dll
0x00007ffeaefc0000 - 0x00007ffeaf195000     C:\WINDOWS\SYSTEM32\urlmon.dll
0x00007ffeb17d0000 - 0x00007ffeb1a76000     C:\WINDOWS\SYSTEM32\iertutil.dll
0x00007ffebff40000 - 0x00007ffebff4c000     C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
0x00007ffebfd70000 - 0x00007ffebfdd7000     C:\WINDOWS\system32\mswsock.dll
0x00007ffeb9a90000 - 0x00007ffeb9aa3000     C:\Program Files\Java\jdk-12.0.1\bin\nio.dll
0x00007ffeb9a70000 - 0x00007ffeb9a8a000     C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\bin\breakgen64.dll
0x0000000180000000 - 0x0000000180025000     C:\Program Files\Java\jdk-12.0.1\bin\rxtxSerial.dll

dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-12.0.1\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.720_none_e6beb5c51314836b;C:\Program Files\Java\jdk-12.0.1\bin\server;C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\bin

VM Arguments:
jvm_args: -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\lib\idea_rt.jar=15663:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2019.3.3\bin -Dfile.encoding=UTF-8 
java_command: SerialPortDataRead
java_class_path (initial): D:\MICHIEL\KULeuven\Industrieel Ingenieur Semester_6\EE5\SerialPortDataRead\out\production\SerialPortDataRead;D:\MICHIEL\KULeuven\Industrieel Ingenieur Semester_6\EE5\SerialPortDataRead\libs\RXTXcomm.jar
Launcher Type: SUN_STANDARD

[Global flags]
     intx CICompilerCount                          = 4                                         {product} {ergonomic}
     uint ConcGCThreads                            = 2                                         {product} {ergonomic}
     uint G1ConcRefinementThreads                  = 8                                         {product} {ergonomic}
   size_t G1HeapRegionSize                         = 1048576                                   {product} {ergonomic}
    uintx GCDrainStackTargetSize                   = 64                                        {product} {ergonomic}
   size_t InitialHeapSize                          = 266338304                                 {product} {ergonomic}
   size_t MarkStackSize                            = 4194304                                   {product} {ergonomic}
   size_t MaxHeapSize                              = 4261412864                                {product} {ergonomic}
   size_t MaxNewSize                               = 2556428288                                {product} {ergonomic}
   size_t MinHeapDeltaBytes                        = 1048576                                   {product} {ergonomic}
    uintx NonNMethodCodeHeapSize                   = 5836300                                {pd product} {ergonomic}
    uintx NonProfiledCodeHeapSize                  = 122910970                              {pd product} {ergonomic}
    uintx ProfiledCodeHeapSize                     = 122910970                              {pd product} {ergonomic}
    uintx ReservedCodeCacheSize                    = 251658240                              {pd product} {ergonomic}
     bool SegmentedCodeCache                       = true                                      {product} {ergonomic}
     bool UseCompressedClassPointers               = true                                 {lp64_product} {ergonomic}
     bool UseCompressedOops                        = true                                 {lp64_product} {ergonomic}
     bool UseG1GC                                  = true                                      {product} {ergonomic}
     bool UseLargePagesIndividualAllocation        = false                                  {pd product} {ergonomic}

Logging:
Log output configuration:
 #0: stdout all=warning uptime,level,tags
 #1: stderr all=off uptime,level,tags

Environment Variables:
PATH=C:\Program Files (x86)\Microchip\mplabc18\v3.47\mpasm;C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files (x86)\Acronis\CommandLineTool\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC0\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\Tools\Binn\;C:\Program Files\Microsoft SQL Server0\DTS\Binn\;C:\Program Files (x86)\Windows Kits.1\Windows Performance Toolkit\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\National Instruments\Shared\LabVIEW CLI;C:\Program Files (x86)\IVI Foundation\IVI\bin;C:\Program Files\IVI Foundation\IVI\bin;C:\Program Files\IVI Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;C:\PROGRA~2\IVIFOU~1\VISA\WinNT\Bin;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\Program Files (x86)\Microchip\xc8\v2.05\bin;C:\Program Files\Common Files\Autodesk Shared\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\PuTTY\;C:\Program Files (x86)\Microchip\mplabc18\v3.47\mpasm;C:\Program F
USERNAME=Michiel
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 9, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 10 , 64 bit Build 18362 (10.0.18362.329)

CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma

Memory: 4k page, system-wide physical 16250M (7829M free)
TotalPageFile size 18682M (AvailPageFile size 5179M)
current process WorkingSet (physical memory assigned to process): 37M, peak: 39M
current process commit charge ("private bytes"): 339M, peak: 343M

vm_info: Java HotSpot(TM) 64-Bit Server VM (12.0.1+12) for windows-amd64 JRE (12.0.1+12), built on Apr  2 2019 14:02:19 by "mach5one" with MS VC++ 15.5 (VS2017)

END.

我正在使用 Java 12.0.1。在四处寻找这个问题时,我遇到了一些其他人也有同样的问题,但没有找到解决办法。以前有没有人遇到过这个问题,或者有人能指出我正确的方向吗?我对整个 COM 端口串口还很陌生。

提前致谢!

所以我找到了解决办法。我使用了来自 fazecast 的 jSerialComm 库,代码几乎相同并且它有效。