繁体   English   中英

Java Windows x64 中的串行 I/O 使用 JRE x86

[英]Java Serial I/O in Windows x64 using JRE x86

我有一个 Java 应用程序在 Windows 7 64 位上运行,但在 32 位版本的 JRE 上运行。 我需要这个应用程序与串行 com 端口通信,显然我需要一点帮助。 :)

在您建议 RXTX 之前,我已经尝试过 32 位和 64 位版本的 RXTX DLL。 它失败是因为 32 位 JRE 无法加载 64 位 DLL,或者它失败是因为 32 位 DLL 给出了 Z93F725A07423FE1C889F448B33D2FiLinkedError4。

java.lang.UnsatisfiedLinkError: <Path>\cache\bundle1030\version0.0\bundle.jar-lib\0\lib\win32\rxtxSerial.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)

我认为这是因为 32 位 RXTX DLL 在 Windows 中找不到用于串行通信的 32 位 DLL。

有关如何进行的任何线索? 另一个图书馆? 如何弥合 32 位 JRE 和 64 位 Windows DLL 之间的差距?

有一个很棒的免费工具,叫做Dependency Walker 它准确地告诉您给定 DLL 将根据当前 PATH 加载哪些其他 DLL,以及哪些无法找到或无法正确加载。 它已经救了我很多次了,它应该是在这里调试你的问题的完美工具。 一旦您知道缺少什么,您就可以找到要安装的 32 位版本——或者只是改变您的路径以使它们可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM