在linux服务器上,tesseract 3.0.2
库已正确安装:
[root@XXX as]# rpm -qa | grep ".*tess.*"
tesseract-3.02-alt1.r723
尝试运行
tess4j
包装器时,出现以下异常:Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'TessBaseAPICreate': /usr/lib64/libtesseract.so.3.0.2: undefined symbol: TessBaseAPICreate
at com.sun.jna.Function.<init>(Function.java:208)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536)
at 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)
at com.sun.proxy.$Proxy0.TessBaseAPICreate(Unknown Source)
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:284)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:200)
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:184)
(... private code ...)
在异常文件中提到的存在:
[root@XXX as]# test -e /usr/lib64/libtesseract.so.3.0.2 && echo "Found" || echo "Not found"
Found
tess4j
代码中引发异常的位置如下所示:/**
* Initializes Tesseract engine.
*/
private void init() {
pageNum = 0;
api = TessAPI.INSTANCE;
handle = api.TessBaseAPICreate(); // ERROR HERE, line #184
api.TessBaseAPIInit2(handle, datapath, language, ocrEngineMode);
api.TessBaseAPISetPageSegMode(handle, psm);
}
我不知道如何解决它,因为所有库版本都是相同的,因此在Windows下完美运行。
最佳答案
好吧,这是二手操作系统中该软件包的特殊问题(“ ALT Linux Centaurus 6.0”)。从该操作系统下的源重建tesseract
软件包后,一切正常。
关于java - 在Linux下运行tess4j(tessreact java包装器),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25404464/