2017-06-13 59 views
2

我想在我的項目中使用Tess4J。它不包括Mac的.dylib文件,所以我構建了自己的Tesseract並使用Tesseract構建中的.dylib。我能夠毫無問題地加載本地庫,並且我相信Tess4J庫鏈接正確,因爲我可以毫無問題地導入它。然而,當我嘗試使用創建正方體的新實例:Tess4J Mac上的NoClassDefFoundError

Tesseract t = new Tesseract(); 

,我發現了以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Pointer 
    at com.ddc.fmwscanner.main.FmwScanner.main(FmwScanner.java:21) 
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Pointer 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

唯一可能的問題,我能想到的是,我的Mac安裝的Tesseract版本是3.0.5,而Tess4J的.dll文件被命名爲「libtesseract3051.dll」,表明Tess4J .jar和.dylib之間可能存在版本不匹配。

任何指導表示讚賞!

回答

1

好吧,我想通了這一點。 Tess4J下載包含一個「lib」文件夾。我將這個整個文件夾作爲依賴包含在我的項目中,並且不再收到NoClassDefFound相關的錯誤。

+0

這對我在Linux上也有所幫助,基本上必須包含lib目錄。謝謝! –