Ошибка 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