【问题标题】:java tesseract error in linux "Unable to load library 'tesseract': libtesseract.so"linux中的java tesseract错误“无法加载库'tesseract':libtesseract.so”
【发布时间】:2018-12-20 19:38:14
【问题描述】:

我在 Eclipse 中使用 tess4J ocr 库,并且在我的 Windows 中运行良好。但是,当我想在 linux 中运行该 java 程序时,它会给出错误“无法加载库'tesseract':libtesseract.so:无法打开共享对象文件:没有这样的文件或目录”。

我在 linux 上没有任何权限来安装 tesseract 或任何其他软件。只是我可以使用 jar 文件并通过调用 shell 脚本来运行 java 程序。请帮助我。正如我认为我的问题将通过获取 libtesseract.so 文件或帮助我如何在 Windows 中获取 libtesseract.so 来解决,以便我将在 linux 中使用它。请帮助并提前感谢

【问题讨论】:

    标签: java linux tesseract


    【解决方案1】:

    使用命令安装 Tesseract for Linux 就足够了:

    sudo apt-get install tesseract-ocr
    

    现在您可以使用命令检查 tesseract 版本:

    tesseract -v
    

    请注意,对于 Tesseract 3.03,您可以使用 Tess4j 2.0 版。 由于不兼容,另一个版本可能会给您带来错误。

    您可以在更改日志或here 中获取有关不同版本兼容性的更多信息。

    【讨论】:

      【解决方案2】:

      在我的情况下(centos),我从文件夹中复制了所有文件(文件名中有 lept 或 teesseract 关键字)

      /usr/local/lib

      到文件夹

      /usr/lib64

      它解决了我的问题

      【讨论】:

        【解决方案3】:

        在 Linux 上,Tess4J 调用 Tesseract 原生库 libtesseract.so 来工作。如果您无法在 Linux 上构建或安装 Tesseract,那么您的运气会很差。如果您可以在 Windows 上使用 Cygwin 或 Mingw 交叉编译为 .so。

        【讨论】:

        • 感谢您的回答,无论我如何下载 tesseract.so 文件。但它仍然要求更多的 .so 文件,即使我包含 leptonica 库它仍然要求一些 .so 文件,如 libz.so 文件。 jvm版本有问题吗?我正在使用 64 位 jvm。请帮忙
        • Leptonica 有几个dependencies。 Tesseract 和 Leptonica 都是 32 位库。它们不能在 64 位 JVM 中使用。
        • 现在我正在尝试在 Windows 中使用 cygwin 构建 tesseract 我能够构建它,但它没有创建 .so 文件,只创建了“.o”文件和“.la”文件.请帮助我如何使用 cygwin 获取“.SO”文件。提前致谢
        • 在 linux 上安装 tesseract 的方式非常混乱,我认为 tesseract 项目将受益于更清晰的获取 tesseract / 其依赖项的方法。 details here 需要相当多的运维经验,并且依赖于 apt-get
        • *对于使用 Red Hat(Amazon Web Services 上的主要产品)的人,apt-get 不可用
        【解决方案4】:

        您必须设置 -Djava.library.path 以便可以找到该文件或调整您的标准库路径以通过扩展系统的 LD_LIBRARY_PATH 将 .so 的位置包含在 .bashrc 中

        【讨论】:

        • 感谢您的回复。但是在 Eclipse Windows 中,我在任何地方都找不到 libtesseract.so 文件。所以通过在linux中设置-Djava.library.path我可以得到“libtesseract.so”。
        【解决方案5】:

        你需要在没有root的情况下安装并指定你的libtesseract.so的路径

        安装在别处/无需root

        Tesseract 可以配置为安装在任何地方,这样就可以在没有 root 访问权限的情况下安装它。

        在 $HOME/local 中安装它:

        ./autogen.sh

        ./configure --prefix=$HOME/local/

        进行安装

        使用同样安装在 $HOME/local 中的 Leptonica 库将其安装在 $HOME/local 中:

        ./autogen.sh

        LIBLEPT_HEADERSDIR=$HOME/local/include ./configure \ --prefix=$HOME/local/ --with-extra-libraries=$HOME/local/lib

        进行安装

        【讨论】:

          【解决方案6】:

          我也有同样的问题。 Tesseract 库也存在于 /usr/local/lib 目录下。我仍然收到此错误。实际上这是链接问题。因此您必须在 /etc/ld.so.conf.d/libc.conf 文件中提供解析器路径的 /usr/local/lib 路径。在此文件中输入路径,或者您可以在同一目录中创建任何新的 conf 文件。

          【讨论】:

            猜你喜欢
            • 2013-02-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多