我们有一个使用JNI调用dll的GWT Web应用程序。我们也构建了dll。它在我的开发人员计算机上工作正常,这是一台64位Windows 7计算机,运行Java 6并在Tomcat 6中运行webapps。但是当我们在运行32位WinXP的测试人员的VM上运行它时,它会出错< / p>
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设置为32位版本的Java 6,因为我希望构建能够在32位计算机上运行,但很明显我错误地理解了32或64-位版本的java在编译Web应用程序时起作用。
是的,我们调用的dll内置于.war中,因为它可以在我的机器上运行。
我还搜索了jniwrap64.dll,但没有找到相关的内容。
添加说明:jniwrap64.dll不是我构建的dll,我的代码没有显式加载这个库。这是我的困惑的一部分,这是什么是这个库,为什么它被加载,等等。我假设jniwrap64.dll是某种需要安装的系统库。我加载库的代码如下:
Library myLib = Library(path);
myLib.load(this.getClass().getClassLoader());
答案 0 :(得分:0)
使用System.loadLibrary()加载dll时,是否加载“jniwrap64.dll”或“jniwrap32.dll”?你能告诉我们加载这个库的代码行吗?