我必须搜索存储在数据库中的文档,这些文档中有图像,所以我使用tess4j来读取这些图像。 在使用eclipse的windows中,项目与tess4j一起工作正常,如果我在windows7中的tomcat 6.35中部署应用程序,项目工作正常,我可以使用tess4j正确搜索。 sous windows 1)我在tomcat lib / shared中添加jar文件 2)tessdata和dll文件在存储库中,我在项目中调用它们。
在Linux环境中我做同样的事情,我得到的第一个错误是- Native library (linux-x86/libtesseract.so) not found in resource lib/shared/*
我将libtesseract.so和tessdata添加到此路径,现在我收到另一个错误:
java.lang.UnsatisfiedLinkError:查找函数'TessBaseAPICreate'时出错:/usr/lib/libtesseract.so.3.0.2:undefined symbol:TessBaseAPICreate 在com.sun.jna.Function。(Function.java:208) 在com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536) 在com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513) at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499) at com.sun.jna.Library $ Handler.invoke(Library.java:199) 在com.sun.proxy。$ Proxy5.TessBaseAPICreate(未知来源) at net.sourceforge.tess4j.Tesseract.init(Unknown Source) at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) at org.coin.bean.ged.Tess4j.extractTextFromImage(Tess4j.java:55) at org.coin.bean.ged.IndexDocument.CreateIndex(IndexDocument.java:158) 在org.coin.bean.ged.searchlucene.setKeyword(searchlucene.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter $ 1.doFilter(DefaultRemoter.java:428) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) 在org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) 在org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) 在org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) 在org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.coin.servlet.filter.PreventInjectionFilter.doFilter(PreventInjectionFilter.java:30) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:602) 在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:489) 在java.lang.Thread.run(Thread.java:745) - - 错误:batchId [7] message [java.lang.UnsatisfiedLinkError:查找函数'TessBaseAPICreate'时出错:/usr/lib/libtesseract.so.3.0.2:undefined symbol:TessBaseAPICreate]
答案 0 :(得分:0)
我刚刚开始使用tess4j,但看起来您可能需要先安装“tesseract”。我打赌它会将丢失的二进制文件复制到该目录中。
How does one install Tesseract-OCR 3.03 in Ubuntu/Linux distributions?