【发布时间】:2014-11-28 06:28:24
【问题描述】:
我正在尝试在我的 spring web 应用程序中使用 tesseract-ocr 在 linux 环境(linux mint - ubuntu 14.04)上使用 tomcat 7 服务器。但我收到一个错误:
java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': libtesseract.so: cannot open shared object file: No such file or directory
com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145)
com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188)
com.sun.jna.Library$Handler.<init>(Library.java:123)
com.sun.jna.Native.loadLibrary(Native.java:255)
com.sun.jna.Native.loadLibrary(Native.java:241)
net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:45)
net.sourceforge.tess4j.Tesseract.init(Tesseract.java:283)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:168)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:152)
我正在使用以下代码:
Tesseract instance = Tesseract.getInstance();
String result = instance.doOCR(file);
我正在使用 maven 为 tess4j 提供依赖项:
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>1.3.0</version>
</dependency>
另外,之前我已经使用命令在我的 linux 机器上成功安装了 tesseract:
sudo apt-get install tesseract-ocr.
需要注意的重要一点是,我能够从命令行参数以及使用 Tess4j 的独立 Java 项目运行 tesseract。它在这两种情况下都给了我正确的输出。
但是在使用 tomcat 服务器运行时,出现上述错误。
我有位于/usr/lib 的libtesseract.so.3 文件。但是不知何故,tomcat 找不到 tesseract 的安装路径。
我无法理解的是,在将其作为独立应用程序运行时,它运行良好并且能够找到 tesseract 文件,但在从 Web 服务器运行时,却无法找到 tesseract 文件。
【问题讨论】:
标签: linux spring maven tomcat tesseract