项目场景:
项目中需要用到OCR识别图片中的信息,所以找到Google开源的tesseract进行识别。开发环境是Mac M1。
问题描述
按照官网步骤进行安装,发现怎么都不能加载lib。错误原因如下:
也在网上查阅了很多解决办法,大致有以下几种:
- 安装Arm 架构的 Homebrew ,通过Homebrew进行安装
- 在Java程序运行的时候,配置VM的参数
-Djava.library.path=/path/to/libraries。
- 在.bash_profile中一劳永逸的配置tesseract的依赖库位置
export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/tesseract/5.3.4_1/lib
- 在Java代码中指定加载的位置
System.setProperty("java.library.path", "/opt/homebrew/Cellar/tesseract/5.3.4_1/lib");
通过以上的方法,我发现都没有解决我的问题。
原因分析:
JNA无法找到tesseract的路径。
解决方案:
直接指定将依赖信息加到系统的搜索路径。
String libraryPath = "/opt/homebrew/Cellar/tesseract/5.3.4_1/lib";
NativeLibrary.addSearchPath("tesseract", libraryPath);