2011-07-13 6 views
3

JavaアプリケーションはWindows 7 64ビットで動作していますが、32ビットバージョンのJREで動作しています。シリアルCOMポートと通信するにはこのアプリケーションが必要で、明らかに少し助けが必要です。 :)JRE x86を使用しているWindows x64のJavaシリアルI/O

RXTXをお勧めする前に、私はすでにRXTX DLLの32ビット版と64ビット版の両方で試してみました。 32ビットJREは64ビットDLLをロードできない、または32ビットDLLはます。java.lang.UnsatisfiedLinkErrorを与えるので、それは失敗したので、それは失敗のいずれか:

Iが原因であると仮定
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-シリアル通信に使用するWindowsで32ビットのRXTX DLLが32ビットのDLLを検出できません。

進歩の手掛かりはありますか?もう一つの図書館? 32ビットJREと64ビットWindows DLL間のギャップを埋める方法は?

+0

申し訳ありませんが、使用していたRXTXの特定のバージョンにバグがありました。それをDLLに置き換えると(見つけ出すのが面倒だった)、うまくいきました。私はあなたが64ビットWindowsでWin32 DLLを使用できると思います。 – PNielsen

答えて

1

Dependency Walkerという素晴らしいツールがあります。これは、現在のPATHに基づいて、特定のDLLがどのDLLをロードするか、見つからないDLL、または正しくロードされないDLLを正確に示します。それは何度も私のベーコンを救ってくれました、そして、あなたの問題をここでデバッグするのに最適なツールでなければなりません。見つからないものが分かったら、インストールする32ビットバージョンを見つけることができます。あるいは、パスを変更して使用可能にすることもできます。

+0

依存関係ウォーカーは素晴らしいですね。私が問題と思っていたものが、それほど多くないことを確認した欠けている依存関係はありませんでした。ありがとう! – PNielsen

関連する問題