0

Intellij Idea でプロジェクトを作成し、maven から tess4j 2.0 を追加し、テスト アプリケーションを作成します。デバッグを開始すると、すべて正常に動作します。「ビルドアーティファクト」をクリックしてjarファイルを起動すると、結果もエラーも何もありません。

public class MainApp {
static String fileName = "C:\\Users\\Alex\\Google Drive\\TW\\LIB\\Tess4J\\eurotext.png";

public static void main(String[] args) {
    try {
        System.setOut(new PrintStream(new File("output-file.txt")));
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("Start");
    ITesseract instance = new Tesseract1(); // JNA Direct Mapping

    try {
        String result = instance.doOCR(new File(fileName));
        System.out.println(result);
    } catch (TesseractException e) {
        System.out.println("Error");
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
    System.out.println("End");
}
}

デバッグ時の出力

始める

(クイック)[ブラウン] {キツネ} ジャンプ !

43,456.78 ドル以上の #90 犬

&アヒル/ガチョウ、電子メールの12.5%........

終わり

jar起動時の出力

始める

「エラー」も「終了」もありません。それはどのように可能ですか?

4

1 に答える 1

0

同じ問題がありました。何らかの理由でクラスが正しくロードされないことがあります。これが私がそれをある程度修正することができた方法です。

  1. アーティファクトをビルドしてから、intellij を使用して jar を リモート デバッグします。

  2. アプリケーションがどの行で中断するかを調べます。

  3. それからそれを包みますtry{... line where application breaks..} catch(Error e){e.getMessage(); }
  4. デバッグ出力の変数「e」にエラー メッセージが表示されます。したがって、問題を特定できます。

これは適切な方法ではない可能性があります。しかし、これが私のjarファイルのエラーを追跡する方法です。
これを一時的な方法として使用して、jar 内のエラーを追跡し、それが壊れた理由を見つけてから正しい方法を見つけるのが最善の方法です (これについては現在認識していませんが..しかし、聞いたことがあります) One-Jarと呼ばれるいくつかのライブラリ) を使用して、デプロイ時にエラーを発生させずに jar を構築します。

于 2015-08-23T05:20:06.753 に答える