目录
背景
记录一下在使用Java开发串口调试工具的时候发现,将程序打包成可以在无jre环境运行exe程序的时候,发现的一个问题并且解决。
我遇到的问题是由于使用RXT串口通讯包里面需要复制 rxtxParallel.dll 和 rxtxSerial.dll 到 C:\Program Files\Java\jdk1.8.0_241\jre\bin 下,而使用Inno Setup Compiler工具打包的jre环境就是在C:\Program Files\Java\jdk1.8.0_241\jre这个文件夹。
打包完毕后再无jre环境下能够正常安装程序,但是在电脑本身已经存在jre环境的情况下,程序会默认使用系统已经配置的jre进行程序执行。从而导致打包的程序无法运行,因为找不到rxtxParallel.dll 和 rxtxSerial.dll这俩个可执行文件。
涉及到的打包工具、串口通讯工具和包
以下是我开发的时候参考的帖子和工具
解决
当我们在有jre环境,但是jre\bin文件夹下并没有 rxtxParallel.dll 和 rxtxSerial.dll 这俩个可执行文件的时候,会出现以下报错:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in Application init method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.