Splitter explodiert auf einem einfachen Muster

8

Ich beginne gerade mit Guava anstelle von Google-Collections. Die Splitter-Klasse schien cool. Aber wenn ich es benutze, so:

%Vor%

Ich bekomme einen Stack-Dump:

%Vor%

Die Javadocs haben nichts über diese "com.google.common.base.Platform". Es ist also ein bisschen schwer zu erraten, was schief läuft.

Wie Sie sehen können, ist das Muster tot einfach.

    
fishtoprecords 27.06.2010, 03:19
quelle

3 Antworten

8

Welche Version von Guava benutzt du? Das klappt bei mir mit dem r05 perfekt.

Bearbeiten: Es scheint, als ob das spezifische Problem hier darin besteht, dass Sie sowohl google-collections als auch guava in Ihrem Klassenpfad zur Laufzeit haben. Platform (eine interne Klasse) existierte in Google-Sammlungen, hatte aber nicht die Methode precomputedCharMatcher . Splitter wird korrekt aus dem Guava-Jar geladen, aber Platform wird aus dem Google-Collect-Jar geladen.

    
ColinD 27.06.2010, 03:56
quelle
13

Die java.lang.NoSuchMethodError sagt Ihnen, dass die gewünschte Methode ist im aktuellen -Klassenpfad fehlt, während er im Klassenpfad für die Kompilierung vorhanden war.

Mit anderen Worten, um dieses Problem zu beheben, müssen Sie Ihren Laufzeitklassenpfad an die richtige Version der API anpassen, die Sie während der Kompilierungszeit verwendet haben. Es kann auch dadurch verursacht werden, dass verschiedene Versionen der Bibliothek während des gesamten Laufzeitklassenpfads gemischt sind. Bereinigen Sie den Klassenpfad dann.

    
BalusC 27.06.2010 04:49
quelle
3

Eigentlich. Sie haben zwei Versionen von com.google.common.base.Platform class und eine dieser Klassen hat oder hat nicht die Methode.

Versuchen Sie, eine der JAR-Dateien zu entfernen. Ich schlage vor, google-collections.jar zu entfernen und gauva.jar zu belassen.

Es wird gut funktionieren.

    
Ashaar Riaz 30.09.2012 07:11
quelle

Tags und Links