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:
-
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
(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.path
将jna.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的人。