我正在尝试在我的项目中使用Tess4J。它不包括适用于Mac的.dylib文件,所以我已经构建了自己的泰瑟拉克特,并且正在使用泰瑟拉克特构建中的.dylib。我能够毫无问题地加载本机库,并且我相信正确链接了Tess4J库,因为我可以毫无问题地导入它。但是,当我尝试使用以下命令创建 Tesseract 的新实例时:
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之间可能存在版本不匹配。
感谢任何指导!
好的,我解决了这个问题。Tess4J下载包含一个“lib”文件夹。我将整个文件夹作为依赖项包含在我的项目中,并且不再收到与NoClassDeffind相关的错误。