2009-07-02 14 views
5

Wer kennt ein Tool/Skript/Programm/was auch immer, um eine Java-Objektinstanz aus einem serialisierten binären Java-Objekt zu erstellen?Deserialisierte Objektinstanz ohne Klassendefinition

Ich habe nicht die .class-Datei, also kann ich nicht (afaik) einfach einen ObjectInputStream erstellen und von dort laden.

Dieses Objekt hat den Standard-Serialisierungsmechanismus, und ich versuche, ein Problem zu debuggen, das wir haben.

Jeder?

+0

Wie erhalten Sie ein serialisiertes Objekt, das keine .class-Datei enthält? – ykaganovich

+2

eeerhmmmm ... Es ist eine lange Geschichte. Es war einmal ein Softwareentwickler ... ohh ... .nimmermind. – OscarRyz

+0

Ok, ich habe die .class-Dateien gefunden, sie sind innen .jar "Dateien" (wie erwartet) die zufällig in einer DB liegen :) Ich bin über die Änderung der Frage. Holen Sie Dateien aus Blob :) – OscarRyz

Antwort

0

denke ich, was Sie erreichen wollen, ist sehr ähnlich zu this post

+0

Uh? ... Was ist die Antwort? Objektserialisierung/Deserialisierung verwenden? Ich habe keine .class-Datei – OscarRyz

+0

Die Antwort war, die .class-Datei von einer URL zu bekommen. – Yishai

1

Es gibt einen ziemlich ausführlichen Beitrag über das Format in Javaworld vor kurzem war ... Könnte das Lesen wert sein.

-Link: http://www.javaworld.com/community/node/2915

+0

Yeap, etwas in dieser Richtung. Ich weiß, dass es ein paar Werkzeuge wie ASM oder andere Bytecode Manipulation Werkzeuge gibt, aber ich habe sie nie zuvor verwendet, also weiß ich nicht, was das beste Werkzeug ist – OscarRyz

0

Erstellen Sie eine Klasse mit dem richtigen Namen und serialVersionUID. Implementieren Sie readObject. Verwenden Sie ObjectInputStream.readFields, um die ObjectInputStrem.GetFields zu erhalten.

+0

Ich habe InvalidClassException. Ich denke, ich muss wissen, was die richtige serialVersionUID ist. Ausnahme im Thread "main" java.io.InvalidClassException: com.o.a.I; Enum-Deskriptor hat nicht-null serialVersionUID: 12885773312 – OscarRyz

Verwandte Themen