关于java调用cl生成的dll,出现load IA 32-bit .dll on a AMD 64-bit platform错误?
使用包含java include时
cl -I %JAVA_HOME%\include -I %JAVA_HOME%\include\win32 -LD HelloNative.c -FeHelloNative.dll
出现错误:
LINK : fatal error LNK1181: 无法打开输入文件“Files\Java\jdk1.8.0_152\include.obj”
使用
cl -I -I -LD HelloNative.c -FeHelloNative.dll
可以编译出dll
但是调用时出现:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_152\bin\HelloNative.dll:
Can't load IA 32-bit .dll on a AMD 64-bit platform
jdk是64bit的,解决办法?
Can't load IA 32-bit .dll on a AMD 64-bit platform 意思就是不能在64位系统中调用32位的dll,你去对应找64位dll就行。
不知道你这个问题是否已经解决, 如果还没有解决的话:关于第二个错误,解决办法:cl的配置以及其相关依赖修改为x64,因为当前配置的cl为32位的,使用64位的jdk环境会报此错误。另一种方法就是切jdk的环境为32位的