我尽量让事情tess4j(OCR算法)的作品,并使用此代码IM:在线程 “主要” java.lang.NoClassDefFoundError的Java exception-例外:网/ sourceforge上/ tess4焦耳/正方体
import java.awt.image.RenderedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.ImageIO;
import net.sourceforge.tess4j.*;
public static void main(String[] args) throws Exception{
URL imageURL = new URL("http://s4.postimg.org/e75hcme9p/IMG_20130507_190237.jpg");
RenderedImage img = ImageIO.read(imageURL);
File outputfile = new File("saved.png");
ImageIO.write(img, "png", outputfile);
try {
Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
// Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
String result = instance.doOCR(outputfile);
System.out.println(result);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
当我在Eclipse(juno-64bit)中运行它时,它非常完美!
但在命令行中我得到这个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/tess4j/Tesseract
at SimpleQueueServiceSample.testOCR(SimpleQueueServiceSample.java:73)
at SimpleQueueServiceSample.main(SimpleQueueServiceSample.java:57)Caused by: java.lang.ClassNotFoundException: net.sourceforge.tess4j.Tesseract
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
在我的生成的类路径,我哈默尔正确的罐子文件:
tess4j.jar
jai_imageio.jar
之后我导出一个简单的jar文件(罐子是在构建路径“秩序和出口”)标志,并运行我的代码:
java -jar manager.jar
请HEL p!
你没有向我们展示关键部分:你如何运行代码。我强烈怀疑在运行它们时,jar文件不在类路径中。仅仅因为你对它们构建*并不意味着当你运行*代码时它们出现在类路径中。 – 2013-05-11 16:02:46
刚刚编辑...请在我的问题底部阅读。谢谢! – gran33 2013-05-11 16:08:52
是的 - 现在看到我的答案,我们知道你是如何运行它的。 – 2013-05-11 16:10:50