2017-06-13 148 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目录。谢谢! –