2017-12-16 5 views
0

Ich habe ein Eclipse-Plugin, dessen Java-Code in mehreren Projekten strukturiert ist. In einem der Projekte habe ich einen externen Krug hinzugefügt und einige Klassen daraus verwendet. Zur Kompilierungszeit wurden keine Fehler gemeldet, aber zur Laufzeit wurde eine NoClassDefFoundError Ausnahme ausgelöst. Ich habe das Problem nach this Lösung behoben.Das Hinzufügen eines externen Jars zum Buildpfad "Order and Export" erzeugt einen Fehler im Projekt.

Danach starte ich eine Project -> Clean.. und plötzlich in einem anderen Projekt habe ich einen Fehler, der The method filter(Predicate<? super String[]>) in the type FluentIterable<String[]> is not applicable for the arguments ....

Ich verglich die FluentIterable clasess in beiden Situationen und ihre Herkunft ändert sich nicht.

Warum passiert das?

+1

Wie ist es möglich, den Code eines Eclipse-Plugins in mehrere Projekte aufzuteilen? Bitte geben Sie ein [Beispiel, um Ihr Problem zu reproduzieren] (https://stackoverflow.com/help/mcve)? Welche Eclipse-Version und welche Java-Version verwenden Sie? – howlger

+0

@howlger Verwenden einer Maven-Struktur mit Abhängigkeiten zwischen ihnen. Ich habe das Problem gefunden. Das importierte Jar verwendete eine andere 'FluentIterable' Klasse von' Guava', ich sah den gleichen Ursprung für die Klasse, weil ich kein Clean ausgeführt habe, wenn ich den Klassenpfad zurück änderte. –

+0

@howlger Was mir nicht klar ist, ist: Da ich den Build-Pfad nur für das Paket, das das externe Glas verwendet, warum wirkt es sich auf andere Pakete (in meinem Fall betrifft es ein anderes PROJEKT!) –

Antwort

0

Ich erhielt den Fehler, weil das importierte Glas eine andere FluentIterable Klasse aus einem guava Glas verwendet. Ich dachte, der Klassenursprung sei derselbe, denn als ich den Build-Pfad zurückwählte, führte ich keinen Project->Clean aus und Eclipse zeigte immer noch auf den schlechten Klassenstandort.

Verwandte Themen