公司开发需要java对接C,引用到了 jna,报出如下错误java.lang.UnsatisfiedLinkError: The specified module could not be found.Exception in thread 'main' java.lang.UnsatisfiedLinkError: The specified module could not be found. at com.sun.jna.Native.open(Native Method) at com.sun.jna.Native.open(Native.java:1759) at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260) at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398) at com.sun.jna.Library$Handler.(Library.java:147) at com.sun.jna.Native.loadLibrary(Native.java:412) at com.sun.jna.Native.loadLibrary(Native.java:391)java.lang.UnsatisfiedLinkError出现这种错误的原因是一般是java虚拟机找不到声明为native方法的本地语言定义时,出现的错误。在我的理解过程中我一般都认为是由于导入dll或者导入lib文件不正确导致的. 遂思路转向 gtp.dll 的依赖 参考github tess4j issues发现神器 Dependency Walker
工具/原料
1
Dependency Walker
2
Microsoft Visual C++
方法/步骤
2
打开 depends.exe左上角 file –》 open –》 选择 调用的 dll 文件 ,,我这个相关的是 gtp.dll你的对应你的 all文件
4
下载 dll文件
5
参考如何解决vs2015运行缺少ucrtbased.dll的问题下载UCRTBASED.DLL 搜索UCRTBASED.DLL
6
下载保存UCRTBASED.DLL
7
解压到指定目录
8
安装所有依赖参考 4 5 6 7 安装所有依赖
9
解决问题
注意事项
1
1、Windows 95/98/Me系统,将ucrtbased.dll复制到C:\Windows\System目录下。
2
2、Windows NT/2000系统,将ucrtbased.dll复制到C:\WINNT\System32目录下。
3
3、Windows XP/WIN7/win10系统 如果您的系统是 64位 的请将ucrtbased.dll文件复制到C:\Windows\SysWOW64目录下, 如果您的系统是 32位 的请将ucrtbased.dll文件复制到C:\Windows\System32目录下。