2010-12-14 8 views
0

JNIを使​​用してdllを呼び出すGWT Webアプリケーションがあります。我々は同様にdllを構築する。私の開発マシンでは、Java 6を実行してTomcat 6でWebアプリケーションを実行する64ビットWindows 7マシンですが、32ビットWinXPを実行しているテスターのVM上で実行すると、エラーはjniwrap64.dllに対するUnsatisfiedLinkErrorの原因は何ですか?

私は、32ビットマシン上で動作できるようにするには、ビルドしたかったので
java.lang.UnsatisfiedLinkError: Cannot load native JNIWrapper library (jniwrap64.dll) 
at com.jniwrapper.Library.loadNativeCode(SourceFile:78) 
at com.jniwrapper.Library.loadNativeCode(SourceFile:103) 
at com.jniwrapper.Library.ensureNativeCode(SourceFile:113) 
at com.jniwrapper.Library.load(SourceFile:189) 

私JRE_HOMEは、Javaの6の32ビットバージョンに設定されていますが、明らかに私はどのように32をおよそ誤理解何かをよまたはJavaの64ビット版がWebアプリケーションのコンパイルに使用できます。

私が呼び出すdllは、私のマシン上で動作するので、.warに組み込まれています。

私もjniwrap64.dllを検索しましたが、関連性の高いものはほとんど見つかりませんでした。

説明のために追加されました:jniwrap64.dllは私が作成したDLLではなく、私のコードはこのライブラリを明示的にロードしていません。それは私の混乱の一部です、このライブラリは何ですか、それはなぜロードされているかなどです。私は、jniwrap64.dllがインストールする必要のある種類のシステムライブラリであると仮定しています。

Library myLib = Library(path); 
myLib.load(this.getClass().getClassLoader()); 

答えて

0

とき、あなたは「jniwrap64.dll」または「jniwrap32.dll」をロードしますSystem.loadLibraryを()でDLLをロードする:次のように私たちのライブラリをロードする私のコードはありますか?このライブラリをロードするコード行を表示しますか?

+0

ご回答ありがとうございます。 – user26270

+0

jniwrap64.dllが64ビットであると思われる場合は、これを32ビットシステムにロードすることはできません。実際には動作するようになりますいない。ソフトウェアを見つけるには、32ビットライブラリを入手し、それを適切な場所に置く必要があります。 –

関連する問題