3

Windows 7 64ビットで実行されているJavaアプリケーションがありますが、32ビットバージョンのJREで実行されています。シリアルCOMポートと通信するには、このアプリケーションが必要です。どうやら少し助けが必要です。:)

RXTXを提案する前に、32ビットバージョンと64ビットバージョンのRXTXDLLの両方ですでに試しました。32ビットJREが64ビットDLLをロードできないために失敗するか、32ビットDLLがjava.lang.UnsatisfiedLinkErrorを与えるために失敗します。

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ビットRXTXDLLがシリアル通信に使用する32ビットDLLをWindowsで見つけられないためだと思います。

続行する方法の手がかりはありますか?別の図書館?32ビットJREと64ビットWindowsDLLの間のギャップを埋める方法は?

4

1 に答える 1

1

DependencyWalkerと呼ばれる驚くべき無料のツールがあります。特定のDLLが現在のPATHに基づいてロードする他のDLLと、見つからない、または正しくロードされないDLLを正確に示します。それは私のベーコンを何度も救ってくれました、そしてそれはここであなたの問題をデバッグするための完璧なツールになるはずです。不足しているものがわかれば、インストールする32ビットバージョンを見つけることができるかもしれません。あるいは、パスを変更してそれらを利用できるようにすることもできます。

于 2011-07-13T11:09:34.713 に答える