jni开发mingw和mingw64的java.lang.UnsatisfiedLinkError异常
问题描述:
JNI开发时,Java调用C/C++编译后的自定义dll库时,报异常
Exception in thread "main" java.lang.UnsatisfiedLinkError: F:\workspace\eclipse workspace\javase workspace\myJni eclipse\prj2_2\libprj2_2.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
问题原因:在64位的JDK虚拟机环境中,调用了32位的dll库。
mingw,C/C++开发环境,32位编译环境
mingw64,C/C++开发环境,64位和32位编译环境
解决方法:64位的JDK虚拟机环境中,应当加载C/C++开发的64位的dll库,将eclipse c++的开发环境设置为mingw64即可。
菜单栏[Window] → [C/C++] → [Build] → [Environment] → [Add]
Name:MINGW64_HOME
Value:F:\sdk\mingw64\bin
重新启动 Eclipse c++ 即可