Чтение последовательного порта - Ошибка: EXCEPTION_ACCESS_VIOLATION - C [rxtxSerial.dll+0x5b00]

В настоящее время я пытаюсь прочитать последовательный порт. В Linux работает нормально. Но столкнулся с ошибкой на машине Windows.

Я перешел по этой ссылке, чтобы прочитать отсюда последовательный порт и загруженную библиотеку RXTX для Windows-машины (файл JAR + DLL).

ОС: Windows 10 с 64-битной

Java jre: Jre 1.8.0_261 ВЕРСИЯ.

Исключение возникает при чтении через входной поток.

Журнал ошибок:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180005b00, pid=4508, tid=0x0000000000002b90
#
# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [rxtxSerial.dll+0x5b00]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\user1\eclipse-workspace\serialport\hs_err_pid4508.log
#
# 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.
#

Предложения будут мне полезны. Спасибо!

4 ответа

TL;DR: не используйте 1.8.0_261, используйте вместо него 1.8.0_251

Я попытался воспроизвести эту ошибку с 1.8.0_181, 1.8.0_251 и 1.8.0_261, используя Windows 10.0, 64-битную сборку 18362 (10.0.18362.1082).

Я смог воспроизвести эту ошибку только с Jre 1.8.0_261. u181 и u251 у меня работали нормально. Я бы предложил использовать java 8 u251 из https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html.

Части приложения, над которыми я работаю, зависящие от последовательного порта, потерпели неудачу сегодня после обновления java с 1.8.0_241 до 1.8.0_271. Я думаю, проблема может заключаться в переходе с Visual Studio 2010 на 2017, на котором сейчас построена Java 8.

Новые возможности:

➜ Изменения зависимостей библиотеки Visual Studio (DLL) среды выполнения JDK / JRE для Windows

Примечания к выпуску Java 1.8.0_261

Обновление: у меня была довольно старая версия (2017 г.) jssc(Java Simple Serial Connector) . К сожалению, оригинал уже давно не обновляется. Но я нашел на GitHub форк, который продолжает разработку. С разветвленной версией у меня больше не было проблем!

На мой взгляд, 1.8.0_261 отлично работает с RXTX, но вылетает с 1.8.0_271. Я использую: Версия Jar: собственная библиотека RXTX-2.2pre1 Версия: RXTX-2.2pre2

Я тестировал RXTX с более новой версией Java 8u281 от 19 января 2021 года, но она также дает сбой.

Однако AdoptOpenJDK 8u282 работает плавно без каких-либо ошибок с последовательной связью с использованием RXTX и выглядит полностью совместимым с Oracle JDK!!! AdoptOpenJDK

Другие вопросы по тегам