4

私は過去8か月間Javaで働いています。現在、JNAを使用してサードパーティのDLLをロードしていますが、32ビットWinXPおよび32ビットWin7マシンで正常に動作します。

64ビットのWin7マシンでは、このサードパーティのdllはC:\ Program Files(x86)の下にあります。これは、32ビットのDLLを意味すると思います。それで、これが私がこれまでに使用した構成です、

Win7マシン-64ビット、サードパーティのdll-32ビット(上記の仮定による)、JRE-32ビットと64ビットの両方で試してみました

しかし、次のように表示されます-「エラー:java.lang.UnsatisfiedLinkError:ライブラリ'ラッパー'をロードできません:指定されたモジュールが見つかりませんでした。」

JNAが64ビットマシンで32ビットJREを使用して32ビットDLLのロードをサポートしているかどうかを教えてください。また、この32ビットDLLが他の32ビットおよび64ビットDLLに依存している場合でも、JNAはそれをサポートします。

procexpを使用して、依存関係が欠落していないかどうかを確認します。それに応じてこの投稿を更新します。

専門家のアドバイスを提供してください。前もって感謝します !

4

1 に答える 1

7

JNAは、64ビットマシンでの32ビットDLLのロードをサポートしています。ただし、これを行うには32ビットのJVMが必要です。Platform.is64Bit()を使用してDLLのパスを決定していました。このメソッドはOSではなくJVMの構成を返すことを学びました。

したがって、64ビットマシンで32ビットVMを使用していた私の場合、DLLへのパスが間違っていました。

于 2013-02-27T19:27:01.767 に答える