我儘量讓事情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