2016-12-04 6 views
1

Ich bekomme die nächste Ausnahme beim Deserialisieren eines Objekts auf Linux-Server, während es auf meinem Windows-PC funktioniert.KryoException: Klasse kann nur unter Linux nicht gefunden werden

Exception in thread "main" com.esotericsoftware.kryo.KryoException: Kann Klasse finden: CLASS_PATH

Das Objekt wird serialisiert und deserialisiert nur lokal (Server oder PC) Ich habe den Weg auf dem Server und es ist das gleiche wie CLASS_PATH, mit den gleichen Groß-/Kleinbuchstaben.

+0

Höchstwahrscheinlich sind Ihre ** CLASSPATH ** -Einstellungen auf Ihren beiden Systemen unterschiedlich. Es spielt keine Rolle, ob die Variable gleich aussieht. Die Sache ist, dass die echten Klassen auf Ihrem System da sein müssen. Außerdem: Ist das wirklich die Fehlermeldung - sich über eine fehlende Klasse namens CLASS_PATH zu beschweren ?! – GhostCat

+0

Ich möchte einfach nicht die echten Namen der Klassen/Pakete präsentieren, also habe ich CLASS_PATH geschrieben. Ich benutze die git und maven Tools um das Projekt zu erstellen und die Einstellungen sind auf beiden Maschinen gleich. Ist es möglich, dass das Problem besteht, weil ich denselben Klassennamen in einem anderen Paket habe? – user5069994

+0

Schlechte Idee; wie das ist verwirrend. Sie könnten etwas wie com.whatever.myproduct.mypacke.SomeClass mindestens verwenden. Aber wie auch immer, dann ist dein Problem klar: dass eine Klasse ** nicht ** in deinem CLASS_PATH auf deinem Linux-System existiert. – GhostCat

Antwort

2

Ich habe Klassen mit den gleichen Klassennamen, aber in den verschiedenen Paketen. Die Verwendung der Kryo-Registrierung dieser Klassen löst das Problem.

kryo.register (SomeClass.class);

Verwandte Themen