rxtx正确的使用方式 - 简书

    rxtx是java串口通信中所使用的jar包,目前我正在完成一个上位机的任务,通过串口发送指令,读取数据,实时显示硬件返回的数据。

通过考察选定rxtx作为我所使用的串口通信框架,根据其他博客得知其使用说明,如下图:

地址:https://blog.csdn.net/cuiyaoqiang/article/details/54928627

我按照步骤做了一下,读取串口名称操作没有问题,但写入串口操作导致虚拟机报错,报错信息如下:


#

\# A fatal error has been detected by the Java Runtime Environment:

#

#  EXCEPTION\_ACCESS\_VIOLATION (0xc0000005) at pc=0x0000000180004465, pid=19324, tid=6140

#

\# JRE version: Java(TM) SE Runtime Environment (10.0.1+13) (build 10.0.1+13-LTS)

\# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0.1+13-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)

\# Problematic frame:

\# C  \[rxtxSerial.dll+0x4465\]

#

\# 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.

#

满世界找bug后得到如下结果:

1.jar包版本和dll不匹配

2.切换工作空间

3.将jar包放入jre/lib下的ext文件夹

1和2试了都不行,期间还获知dll放在jre的bin目录下即可,但没有解决我的问题,在使用3方法的时候,由于我使用的jdk版本是10.0.1,该版本下没有ext文件夹,最终尝试使用降低版本的方法得到这个文件夹在试试,笔者安装JDK1.8后,jar包放入ext文件夹。如下图:

注意目录,ext是在jdk/jre/lib下

修改eclipse运行环境(window->preferences->java->installed jre)点击add,增加jdk1.8的目录并选中,点击apply,如下图:

更改eclipse运行环境

如果你是新建java工程,到这里就行了,新建工程默认使用新环境。但更改环境前的java工程,使用的还是jdk10.0.1,如果是这种情况,则需要修改该工程的运行环境,右键工程,选中buildpath,进入弹窗,选中jdk10,点击remove移除。

切换工程环境

在点击Add Library,在弹窗中选择jre system library,选择jdk1.8即可

经过一番缠斗,终于把rxtx的bug解决了,说实话这jar居然要放到虚拟机里执行还是第一次见,有点东西。成果如图:

rxtx详细操作代码在下一篇博客里再介绍,就这样。


原网址: 访问
创建于: 2024-02-01 09:44:18
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论