gpt4 book ai didi

在没有 Eclipse 的情况下使用 tess4j 出现 java.lang.NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 12:40:35 25 4
gpt4 key购买 nike

我在我的 java 应用程序中使用 tess4j 库。我按照说明将 liblept168.dll 和 libtesseract302.dll 复制到我的项目根文件夹中。当我使用 Eclipse 运行我的应用程序时,它工作正常。但是当我将其导出为可运行的 jar 文件时,它给出了 java.lang.NoClassDefFoundError - UnsatisfiedLinkError: 找不到指定的模块。但我确信,该​​程序会看到此文件,因为在我添加此文件之前,它给了我其他错误,即找不到该文件。我也曾经将此 dll 复制到我的 jar 存档中,但没有帮助。我绝对确定我也使用正确的 jre。我只是不明白哪里出了问题......

Tesseract1 api = new Tesseract1();
api.setTessVariable("tessedit_char_whitelist", "(),-+0123456789");
//part of code of getting image
String result = api.doOCR(image);

有什么想法吗?

更新:我按照你所说的编辑了我的 list 文件,它是:

Manifest-Version: 1.0

Rsrc-Class-Path: ./ jsoup-1.7.3.jar json_simple-1.1.jar Filters.jar ja i_core.jar jna-4.1.0.jar tess4j.jar jai_codec.jar jxl.jar myjsocksj.j ar jai_imageio.jar

Class-Path: jai_imageio.jar tess4j.jar

Rsrc-Main-Class: com.slando.MainWindow

Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

然后出现了缺少dll文件的错误,我将它们复制到jar中。然后同样的错误开始发生。

堆栈跟踪:

java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.tess4j.Tesseract1
at com.slando.parser.ImageParser.getNumberFromImage(ImageParser.java:109)
at com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:138)
at com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:144)
at com.slando.parser.PageParser.loadPhone(PageParser.java:202)
at com.slando.parser.PageParser.loadFullInfo(PageParser.java:319)
at com.slando.HttpThread.run(HttpThread.java:58)
at java.lang.Thread.run(Unknown Source)

还有一个:

java.lang.UnsatisfiedLinkError: The specified module could not be found.
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.Native.open(Native.java:1759)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Native.register(Native.java:1396)
at com.sun.jna.Native.register(Native.java:1156)
at net.sourceforge.tess4j.TessAPI1.<clinit>(Unknown Source)
at com.slando.parser.ImageParser.getNumberFromImage(ImageParser.java:109)
at com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:138)
at com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:144)
at com.slando.parser.PageParser.loadPhone(PageParser.java:202)
at com.slando.parser.PageParser.loadFullInfo(PageParser.java:319)
at com.slando.HttpThread.run(HttpThread.java:58)
at java.lang.Thread.run(Unknown Source)

最佳答案

Eclipse 的类路径中有 tess4j jar,但您的系统没有。要分发此项目,tess4j jar 需要位于 jar list 的类路径中。您还可以将此 jar 的路径添加到系统设置中的类路径环境变量中。

Someone else had the same problem

关于在没有 Eclipse 的情况下使用 tess4j 出现 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com