无法加载库'tesseract':libtesseract.so:无法打开共享对象文件:没有这样的文件或目录

Omn*_*ent 6 java tesseract centos leptonica

我已经在我的MBP上运行了tesseract和Tess4J一段时间了.今天我开始将我的应用程序迁移到服务器并开始在服务器上安装所有内容.在tomcat中运行Tess4J之前,我尝试运行一个简单的java程序,以确保一切都很好,花花公子.不是...

  • 我在centOS 64位服务器上
  • 我已经安装了tesseract,它的工作正常 - tesseract myimage.jpg mytext产生数据

但是,运行使用Tess4j的简单类会产生以下错误:

线程"main"中的异常java.lang.UnsatisfiedLinkError:无法加载库'tesseract':libtesseract.so:无法打开共享对象文件:没有这样的文件或目录

到目前为止我做了什么

  • sudo ldconfig在安装tesseract后跑了
  • 我搜索了libtesseract.so并找到了它 /usr/local/lib/libtesseract.so

服务器上的文件夹包含以下文件

myimge.png  
ghost4j-0.3.1.jar  
jai_imageio.jar  
jna.jar  
maslab.jar  
pngj.jar  
tess4j.jar  
TesseractExample.class  
TesseractExample.java
Run Code Online (Sandbox Code Playgroud)

tesseract -v产生:

tesseract -v
tesseract 3.02.02
 leptonica-1.69
  libjpeg 6b : libpng 1.2.49 : libtiff 3.9.4 : zlib 1.2.3
Run Code Online (Sandbox Code Playgroud)

如何让Tess4J知道libtesseract.so确实存在?enter code here

小智 23

我也有这个问题.

安装tesseract后是否运行了以下命令:

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

这为我解决了这个问题.


Mar*_*mez 6

您必须将 LD_LIBRARY_PATH 环境变量设置为 libtesseract.so 所在的路径。

export LD_LIBRARY_PATH=/usr/local/lib
Run Code Online (Sandbox Code Playgroud)


小智 5

有必要定义变量jna.platform.library.path。例如:

-Djna.platform.library.path=/usr/local/lib/


Jea*_*tti 2

也许是安装了 32 位库.so