嘿,我正在尝试使用tess4j进行tesseract,并在mac osx上将此问题用于eclipse。
我的tesseract在终端上工作正常但是试图通过tesseract运行tess4j会让我错误。
java.lang.UnsatisfiedLinkError:无法加载库'tesseract':本机库(darwin / libtesseract.dylib)
我在我的opt / local / lib中使用macport安装了tessetact dylib及其命名的libtesseract.dylib。
感谢您的帮助
答案 0 :(得分:5)
我知道这是一个老帖子。我最近尝试使用Tess4J
时遇到了这个问题。但是,我设法找到了解决方法。我写了一篇关于它的帖子http://www.microshell.com/programming/java/performing-optical-character-recognition-in-java/
简而言之,问题是因为tess4j-2.0.0.jar
不包含MacOS库。所以我只是通过以下步骤修改了我的maven缓存jar:
cd /Users/user/.m2/repository/net/sourceforge/tess4j/tess4j/2.0.0
(调整tess4j JAR文件所在的目录)mkdir darwin
jar uf tess4j-2.0.0.jar darwin
cp /opt/local/lib/libtesseract.3.dylib darwin/libtesseract.dylib
jar uf tess4j-2.0.0.jar darwin/libtesseract.dylib
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
答案 1 :(得分:4)
您需要在Mac上安装tesseract lib。
brew install tesseract --with-all-languages
答案 2 :(得分:2)
@maresa 几年后,您的评论对我有所帮助,非常感谢 :) 有点不同的路径,也许它会帮助某人:
MacOS Catalina - 10.15.3
答案 3 :(得分:1)
我与Ghost4j有一个非常相似的问题,即
InvocationTargetException: Unable to load library 'gs': Native library (darwin/libgs.dylib) not found in resource path
不是修改jar文件,而是通过设置jna.library.path
将jna指向适当的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
答案 4 :(得分:0)
确保使用Tesseract 3.02版本的libtesseract.dylib
。在Tesseract论坛上查看this post。
答案 5 :(得分:0)
这正是我今天所追求的,所以感谢上面的Q&amp; A.作为超越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中),但我希望这可以帮助其他正在查看此帖子的人。