Tess4j在mac OS X上不满意链接错误

嘿,我正在尝试使用tess4j for tesseract并在mac osx上使用此问题进行eclipse。

我的tesseract从终端正常工作,但试图通过tesseract运行tess4j会给我一个错误。

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

我在我的opt / local / lib中使用macport安装了tessetact dylib及其命名的libtesseract.dylib。

谢谢你的帮助

我知道这是一个老post。 我最近尝试使用Tess4J时遇到了这个问题。 但是,我设法找到了解决方法。 我写了一篇关于它的posthttp://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 (validation文件是否包含在内)

然后,在修改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 

您需要在Mac上安装tesseract lib。

brew install tesseract --all-languages

我和Ghost4j有一个非常类似的问题,即

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

而不是修改jar文件,通过设置jna.library.pathjna.library.path指向适当的lib路径。 在Eclipse中,您需要在运行配置中设置系统属性 – 请在此处回答 – https://stackoverflow.com/a/862405/2163229

如果你正在使用Maven exec:

 mvn -Djna.library.path=/opt/local/lib/ exec:java -Dexec.mainClass="foo.bar.NativeThingy" 

要么

 export MAVEN_OPTS="-Djna.library.path=/opt/local/lib/" && mvn exec:java -Dexec.mainClass="foo.bar.NativeThingy" 

显然,将路径设置为安装lib的位置。 在我的情况下,我运行$ locate libgs.dylib并找到上面的路径。

参考文献: https //jna.java.net/javadoc/com/sun/jna/NativeLibrary.html

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

这正是我今天所追求的,所以感谢上面的问答。 作为一个超出maresa提到的额外步骤,我在修复你问的问题后遇到了这个错误:

 java.lang.UnsatisfiedLinkError: dlopen(/var/folders/sq/rh89_ntd7jqdlv9__25zj9dr0000gp/T/jna--913086793/jna8800789057827590119.tmp, 9): Library not loaded: /usr/local/lib/libjpeg.8.dylib Referenced from: /usr/local/lib/liblept.4.dylib Reason: image not found 

所以为了解决这个问题,我需要为libjpeg.8.dylib设置一个符号链接:

 ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/lib/libjpeg.8.dylib 

不确定是否有办法在没有符号链接的情况下执行此操作(即将其打包在jar中),但我希望这可以帮助其他正在查看此post的人。