1. java.lang.UnsatisfiedLinkError: Unable to load library 'xxx': Native library
找不到dll文件所致,dll文件能能否成功调用取决于jdk位数, dll文件位数和jdk位数要一致,位数不一致的话会报错
"Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'testx64': 找不到指定的模块。"
2. java.lang.UnsatisfiedLinkError: %1 不是有效的 Win32 应用程序
32位的dll,jdk是64位是报错,将64位jdk 换成 32位jdk后不再报该错误;
3. java.lang.Error: Invalid memory access
未成功导入dll所致,改为根据绝对路径导入后解决问题
A INSTANCE = (A) Native.loadLibrary("xxx.dll", A.class);
改为:
String path= StringUtils.substring(A.class.getResource("/").getPath()+"xxx.dll", 1);A INSTANCE = (A) Native.loadLibrary(path, A.class);