Mac OS X上的Tess4j不满意的链接错误

nes*_*ion 3 java tesseract

嘿,我正在尝试使用tess4j进行tesseract,并在Mac osx上使此问题发生。

我的tesseract在终端上运行正常,但是尝试通过tesseract运行tess4j会抛出错误。

java.lang.UnsatisfiedLinkError:无法加载库“ tesseract”:本机库(darwin / libtesseract.dylib)

我在使用macport安装的opt / local / lib中确实有tessetact dylib及其名为libtesseract.dylib的文件。

谢谢你的帮助

小智 8

@maresa 几年后你的评论帮助了我,非常感谢:)有点不同的路径,也许它会对某人有所帮助:

  1. cd /Users/用户名/.m2/repository/net/sourceforge/tess4j/tess4j/4.5.4/
  2. 达尔文目录
  3. jar uf tess4j-4.5.4.jar 达尔文/
  4. brew info tesseract(在这里您可以找到 libtesseract.4.dylib 的路径)
  5. cp /usr/local/Cellar/tesseract/4.1.1/lib/libtesseract.4.dylib darwin/libtesseract.dylib
  6. jar uf tess4j-4.5.4.jar darwin/libtesseract.dylib
  7. jar tf tess4j-4.5.4.jar

MacOS Catalina - 10.15.3


mar*_*esa 5

我知道这是旧帖子。尝试使用时,我最近也遇到了这个问题Tess4J。但是,我设法找到了解决方法。我已经写了一篇关于它的文章http://www.microshell.com/programming/java/performing-optical-character-recognition-in-java/

简而言之,问题是因为tess4j-2.0.0.jar不包括MacOS库。因此,我通过执行以下步骤修改了我的Maven缓存jar:

  1. cd /Users/user/.m2/repository/net/sourceforge/tess4j/tess4j/2.0.0 (调整您的tess4j JAR文件所在的目录)
  2. mkdir darwin
  3. jar uf tess4j-2.0.0.jar darwin
  4. cp /opt/local/lib/libtesseract.3.dylib darwin/libtesseract.dylib
  5. jar uf tess4j-2.0.0.jar darwin/libtesseract.dylib
  6. jar tf tess4j-2.0.0.jar (以验证是否包含该文件)

修改tess4j-2.0.0.jar文件后,我便能够运行Java程序。以下是我的MacOS版本。

user@laptop:~$ uname -a
Darwin Maresas-MacBook-Pro.local 14.3.0 Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; root:xnu-2782.20.48~5/RELEASE_X86_64 x86_64
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,它就像一个魅力!对于那些使用“brew install tesseract”安装的人,第四步应该类似于“cp /usr/local/Cellar/tesseract/4.1.1/lib/libtesseract.4.dylib darwin/libtesseract.dylib”:) (3认同)

小智 5

我有一个与 Ghost4j 非常相似的问题,即

InvocationTargetException: Unable to load library 'gs': Native library (darwin/libgs.dylib) not found in resource path
Run Code Online (Sandbox Code Playgroud)

不要修改 jar 文件,而是通过设置将 jna 指向适当的 lib 路径jna.library.path。在 Eclipse 中,您需要在运行配置中设置系统属性 - 所以在这里回答 - /sf/answers/60368381/

如果您使用的是 Maven exec:

mvn -Djna.library.path=/opt/local/lib/ exec:java -Dexec.mainClass="foo.bar.NativeThingy"
Run Code Online (Sandbox Code Playgroud)

或者

export MAVEN_OPTS="-Djna.library.path=/opt/local/lib/" && mvn exec:java -Dexec.mainClass="foo.bar.NativeThingy"
Run Code Online (Sandbox Code Playgroud)

显然,将路径设置为安装库的位置。就我而言,我运行$ locate libgs.dylib并找到了上述路径。

参考资料: https : //jna.java.net/javadoc/com/sun/jna/NativeLibrary.html


Lon*_*yen 5

您需要在 Mac 上安装 tesseract 库。

brew install tesseract --with-all-languages

  • 用这个命令。错误:无效选项:--with-all-linguals (3认同)

ngu*_*enq 0

确保您使用libtesseract.dylibTesseract 3.02 版本。查看Tesseract 论坛上的这篇文章