2014-01-28 85 views
2

嘿,我正在嘗試使用tesssract的tess4j和這個問題在Mac osx上的日食。在Mac OS X上Tess4j不滿意的鏈接錯誤

我的tesseract從終端工作正常,但試圖通過tesseract運行tess4j拋出一個錯誤。

java.lang.UnsatisfiedLinkError中:無法加載庫 '正方體':本機庫(達爾文/ libtesseract.dylib)

我確實有tessetact dylib,在我的選擇/ local/lib目錄的命名libtesseract.dylib這我使用macport安裝。

感謝您的幫助

回答

0

確保你使用的正方體3.02版本libtesseract.dylib。在Tesseract論壇上查看this post

+0

我使用的版本,02年2月3日,我檢查了,再發表出來,但它不工作。我還添加了java -Djava.library.path作爲vm參數。 64位jvm可以拋出這個錯誤 – nestrocuation

+1

很可能。 Tesseract和Leptonica是32位庫。可能需要相當多的工作才能將它們編譯爲64位。 – nguyenq

4

我知道這是一箇舊帖子。當我嘗試使用Tess4J時,我最近也遇到了這個問題。不過,我設法找到了解決辦法。我寫了一篇關於它的文章http://www.microshell.com/programming/java/performing-optical-character-recognition-in-java/

總之,問題是因爲tess4j-2.0.0.jar沒有包含MacOS庫。

  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. :所以我只是做這些步驟修改緩存在礦井罐子行家
  7. jar tf tess4j-2.0.0.jar(驗證文件是否包含在內)

在修改tess4j-2.0.0.jar文件後,我才能運行我的Java程序。以下是我的MacOS版本。

[email protected]:~$ 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 
0

這正是我今天以後的樣子,所以感謝上面的Q & 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中),但我希望這有助於任何正在查看此帖的人。

1

我有一個非常類似的問題與Ghost4j,即

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

而是通過設置jna.library.path修改jar文件,點JNA到相應的lib路徑。在Eclipse中,您需要設置運行配置系統屬性 - 所以回答這個在這裏 - https://stackoverflow.com/a/862405/2163229

如果您正在使用Maven的高管:

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" 

顯然,將路徑設置到您的庫安裝位置。就我而言,我跑了$ locate libgs.dylib並找到了上面的路徑。

參考文獻: https://jna.java.net/javadoc/com/sun/jna/NativeLibrary.html

1

您需要在Mac上安裝正方體庫。

brew install tesseract --all-languages