2016-08-19 2 views
0

Ich versuche, eine OCR-Anwendung für Mirth mit Java und Tesseract.I das Projekt in JAR-Datei exportieren und Aufruf von Mirth mit Javascript, die eine Hallo Welt-Anwendung. ich glaube, dass ich die jAR-Dateien direkt hinzufügen way.However ich ein Problem in Java OCR haben, so dass ich diesen Fehler,java.lang.NoClassDefFoundError: net/sourceforge/tess4j/TesseractException

ERROR (com.mirth.connect.connectors.js.JavaScriptDispatcher:193): Error evaluating JavaScript Writer (JavaScript Writer "RTF>DCM" on channel b469e5af-a78d-41ca-86a0-a7b507799a4d). java.lang.NoClassDefFoundError: net/sourceforge/tess4j/TesseractException

Project Screenshot

package com.imagerad.ocr; 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 

import net.sourceforge.tess4j.ITesseract; 
import net.sourceforge.tess4j.Tesseract; 
import net.sourceforge.tess4j.TesseractException; 

public class JavaOCRTest { 
static String Tc; 
static String phone; 
static String date; 

public static void main(String[] args) throws IOException{ 

} 

public String returnText(String fileName) throws IOException{ 


    Files.walk(Paths.get(fileName)).forEach(filePath -> { 
     if (Files.isRegularFile(filePath)) { 
      File imageFile = filePath.toFile(); 

      ITesseract instance = new Tesseract(); 

      try { 
       String result = instance.doOCR(imageFile); 

       int i=result.indexOf("Numarasn: "); 
       int j=result.indexOf("Tel No:"); 
       int k=result.indexOf("Bilgllendirme Tarihl:"); 

       Tc = result.substring(i+10, i+22); 
       phone = result.substring(j+8,j+23); 
       date = result.substring(k+22,k+32); 


      } catch (TesseractException e) { 
       System.err.println(e.getMessage()); 
      } 
     } 
    }); 
    return Tc+""+phone+""+date; 
} 

public String returnTC() throws IOException{ 
    return Tc; 
} 

public String returnPhone() throws IOException{ 
    return phone; 
} 

public String returnDate() throws IOException{ 
    return date; 
} 
} 

Vielen Dank für Ihre hilft.

+0

Es ist eine Klasse nicht gefunden Ausnahme, also überprüfen Sie den Pfad zu den fraglichen Gläsern und dass die JAR-Dateien tatsächlich die Klassen haben, von denen Sie denken, dass sie haben sollten (verwenden Sie 'entpacken -l file.jar '). – Robert

+0

Vielen Dank @ Robert.Ich habe meine Probleme gelöst.Sie ​​können alle Antworten sehen [diese] (http://Stackoverflow.com/a/39201494/5459257) –

Antwort

2

Sie müssen die Tess4J.jar herunterladen und es dem Klassenpfad hinzufügen. Dieses jar enthält die fehlende Klasse net/sourceforge/tess4j/TesseractException

+0

Wie kann ich diesen Klassenpfad hinzufügen? Vielleicht habe ich es vorher getan. –

+0

Wie Sie die Klasse ausführen? – Jens

+0

Ich habe die JAR-Dateien für Tess4J bereits über Java Build Path -> Bibliotheken -> Externe JARs hinzufügen hinzugefügt. Außerdem wird das Projekt lokal ausgeführt. –

Verwandte Themen