【发布时间】:2013-01-07 12:39:47
【问题描述】:
我正在通过 Java Applet 和 rxtx 库进行一些串行通信。 小程序工作正常,但是当我遇到问题时加载更多
UnsatisfiedLinkError: rxtxSerial.dll 已经加载到另一个类加载器中
在How to unload library (DLL) from java JVM 之后,我正在尝试卸载 dll,我相信这可以帮助解决这个问题。
据我了解,我可以为 rxtx 类自定义类加载器,并强制垃圾收集器在某些时候清理所有内容,包括加载的 dll。
所以下面的代码应该会有所帮助(我正在尝试将它加载到负责启动与串口通信的函数中)。
cl = new CustomClassLoader();
ca = cl.findClass("gnu.io.CommPortIdentifier");
a = ca.newInstance();
p = ca.getMethod("getPortIdentifier");
portId = (CommPortIdentifier) p.invoke(a, comportUsed);
不幸的是它抛出了ClassNotFoundException
我猜我的自定义类加载器有问题,但不知道是什么。
请帮助我找到解决问题的方法UnsatisfiedLinkError。
【问题讨论】: