Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有Eclipse的情况下使用tess4j时发生java.lang.NoClassDefFoundError_Java_Eclipse_Tess4j - Fatal编程技术网

在没有Eclipse的情况下使用tess4j时发生java.lang.NoClassDefFoundError

在没有Eclipse的情况下使用tess4j时发生java.lang.NoClassDefFoundError,java,eclipse,tess4j,Java,Eclipse,Tess4j,我在java应用程序中使用了tess4j库。我按照说明将liblept168.dll和libtesseract302.dll复制到我的项目根文件夹中。当我用Eclipse运行我的应用程序时,它工作正常。但当我将其导出为可运行的jar文件时,它给出了java.lang.NoClassDefFoundError-UnsatisfiedLinkError:找不到指定的模块。但我确信,该程序会看到这些文件,因为在我添加这些文件之前,它给了我其他错误,无法找到这些文件。我也曾将这些DLL复制到我的jar归

我在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);
有什么想法吗

UPD: 我按照你说的编辑了我的清单文件,它是:

清单版本:1.0

Rsrc类路径:./jsoup-1.7.3.jar json\u 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

类路径:jai_imageio.jar tess4j.jar

Rsrc主类:com.slando.MainWindow

主类:org.eclipse.jdt.internal.jarinjarloader.jarrscloader

然后是关于缺少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)
java.lang.UnsatifiedLinkError:找不到指定的模块。
位于com.sun.jna.Native.open(本机方法)
位于com.sun.jna.Native.open(Native.java:1759)
位于com.sun.jna.nativellibrary.loadLibrary(nativellibrary.java:260)
位于com.sun.jna.nativellibrary.getInstance(nativellibrary.java:398)
位于com.sun.jna.Native.register(Native.java:1396)
位于com.sun.jna.Native.register(Native.java:1156)
位于net.sourceforge.tess4j.TessAPI1。(未知来源)
在com.slando.parser.ImageParser.getNumberFromImage(ImageParser.java:109)上
位于com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:138)
位于com.slando.parser.ImageParser.loadNumberFromImage(ImageParser.java:144)
在com.slando.parser.PageParser.loadPhone(PageParser.java:202)
在com.slando.parser.PageParser.loadFullInfo(PageParser.java:319)
运行(HttpThread.java:58)
位于java.lang.Thread.run(未知源)

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


我编辑了这篇文章。请检查一下。这没用。可能还有其他想法吗?我也有同样的问题,所以我将DLL复制到c:/windows/System32仍然有同样的问题=\。最有趣的是,它与Eclipse一起工作。我也确信,我的程序可以看到所有文件。因为之前它给了我一个错误,它找不到文件,我添加了它们,出现了新的错误…你能发布stacktrace吗?你有没有把
tessdate
目录和指定的包与你的包一起包括进去?