java调用dll出现:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ... (Ljava/lang/String;)Z
解决方案:
在c++头文件和cpp文件里查看有没有如下相关代码:
如果没有需要添加该内容,即可
Exception in thread "main" java.lang.UnsatisfiedLinkError: ... Ljava/lang/String;
解决方案:
如果是通过命令行编译生成的dll,那么此时你需要查看下相关的编译命令:
g++ -c -I"D:\Program Files\Java\jdk1.6.0_10\include" -I"D:\Program Files\Java\jdk1.6.0_10\include\win32" -o Invoke.o Invoke.cpp
g++ -I"D:\Program Files\Java\jdk1.6.0_10\include" -Wl[color=red],[/color]--add-stdcall-alias -shared -o Invoke.dll Invoke.o
注意[color=red]红色的逗号[/color]不能少
Exception in thread "main" java.lang.UnsatisfiedLinkError: ... (Ljava/lang/String;)Z
解决方案:
在c++头文件和cpp文件里查看有没有如下相关代码:
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif
如果没有需要添加该内容,即可
Exception in thread "main" java.lang.UnsatisfiedLinkError: ... Ljava/lang/String;
解决方案:
如果是通过命令行编译生成的dll,那么此时你需要查看下相关的编译命令:
g++ -c -I"D:\Program Files\Java\jdk1.6.0_10\include" -I"D:\Program Files\Java\jdk1.6.0_10\include\win32" -o Invoke.o Invoke.cpp
g++ -I"D:\Program Files\Java\jdk1.6.0_10\include" -Wl[color=red],[/color]--add-stdcall-alias -shared -o Invoke.dll Invoke.o
注意[color=red]红色的逗号[/color]不能少