(M1型号机器)问题复原:
1.安装方式
使用 brew install tesseract
安装
(非M1芯片 执行此命令后,运行项目 缺什么包 用brew install 安装就行 比如brew install openpng
)
2.M1芯片排除问题后启动项目会报错
java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': Native library (darwin/libtesseract.dylib)
网上一顿搜,各种方式,解决了好久,copy libtesseract.dylib后报如下错误
java.lang.UnsatisfiedLinkError: dlopen(/Users/wsq/Library/Caches/JNA/temp/jna260964831976543606.tmp, 0x0009): tried: '/Users/wsq/Library/Caches/JNA/temp/jna260964831976543606.tmp' (mach-o file, but is an incompatible architecture (have (arm64), need (x86_64)))
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:461)
at com.sun.jna.Library$Handler.<init>(Library.java:192)
at com.sun.jna.Native.loadLibrary(Native.java:672)
at com.sun.jna.Native.loadLibrary(Native.java:656)
at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:85)
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:444)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:328)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:311)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:292)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:276)
根本原因:
芯片不同 架构不同,net.sourceforge.tess4j.Tesseract pom jar调用的是x86架构native接口,找到m1芯片适配的pom jar包, 只能将tesseract重新安装成X86架构
**
终极安装命令如下:
**
arch -x86_64 /usr/local/Homebrew/bin/brew install tesseract