Ошибка google-diff-match-patch во время выполнения с java.lang.NoClassDefFoundError

Я пытаюсь использовать http://code.google.com/p/google-diff-match-patch/, получая NoClassDefFoundError на diff_match_patch$Diff, когда я запускаю следующий код.

import name.fraser.neil.plaintext.diff_match_patch.Diff;
import name.fraser.neil.plaintext.diff_match_patch.LinesToCharsResult;
import name.fraser.neil.plaintext.diff_match_patch.Patch;

...

public static void difftest(){
    String string1 = "My first string";
    String string2 = "My second string";

    diff_match_patch dmp = new diff_match_patch();
    LinkedList<Diff> diffs= dmp.diff_main(string1, string2);
    String html = dmp.diff_prettyHtml( diffs);
    System.out.println(html);
}

Я посмотрел на скомпилированные diff_match_patch.class и diff_match_patch$Diff, diff_match_patch$Patch и diff_match_patch$LinesToCharsResult - все это есть. Мне никогда не везло со статическими вложенными классами, но я думаю, что в этом проблема.

1 ответ

Я использовал Makefile для создания jar-файла, и мне нужно было включить вложенные классы в jar-файл.

CLASSES = $(SRCS:.java=.class)  \
    diff_match_patch$$Diff.class \
    diff_match_patch$$Patch.class \
    diff_match_patch$$LinesToCharsResult.class \
    diff_match_patch$$Operation.class \
    diff_match_patch$$1.class
Другие вопросы по тегам