2

我必须在存储在数据库中的文档中进行搜索,这些文档中有图像,所以我使用 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:未定义符号:com.sun.jna.Function.(Function.java:208) 处的 TessBaseAPICreate。 sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536) 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513) 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499) 在 com .sun.jna.Library$Handler.invoke(Library.java:199) at com.sun.proxy.$Proxy5.TessBaseAPICreate(Unknown Source) 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) 在 org.org.coin.bean.ged.searchlucene.setKeyword(searchlucene.java:40) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun 的 coin.bean.ged.IndexDocument.CreateIndex(IndexDocument.java:158)。 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) at 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) 在 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。在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 调用(StandardWrapperValve.java:233) .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.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 在 org.apache.tomcat 的 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)。 util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:745) - --Erroring: batchId[7] message[java.lang.UnsatisfiedLinkError:查找函数“TessBaseAPICreate”时出错:/usr/lib/libtesseract.so.3.0.2:未定义符号:TessBaseAPICreate]

4

1 回答 1

0

I am just getting started with tess4j, but it looks like you may need to install "tesseract" first. i am betting it will copy the missing binaries into that directory.

How does one install Tesseract-OCR 3.03 in Ubuntu/Linux distributions?

于 2015-01-02T17:20:21.857 回答