rxtx正确的使用方式

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

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

rxtx正确的使用方式_第1张图片
地址: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文件夹。如下图:


rxtx正确的使用方式_第2张图片
注意目录,ext是在jdk/jre/lib下

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


rxtx正确的使用方式_第3张图片
更改eclipse运行环境

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


rxtx正确的使用方式_第4张图片
切换工程环境

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


rxtx正确的使用方式_第5张图片

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


rxtx正确的使用方式_第6张图片

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

你可能感兴趣的:(rxtx正确的使用方式)