2009-07-02 8 views
5

Dans toute personne connaissant un outil/script/programme/quoi que ce soit pour créer une instance d'objet Java à partir d'un objet sérialisé binaire java?Instance d'objet désérialisé sans définition de classe

Je n'ai pas le fichier .class, donc je ne peux pas (afaik) simplement créer un ObjectInputStream et le charger à partir de là.

Cet objet possède le mécanisme de sérialisation par défaut et j'essaie de déboguer un problème que nous avons.

Quelqu'un?

+0

Comment aboutissez-vous à un objet sérialisé qui ne possède pas de fichier .class? – ykaganovich

+2

eeerhmmm ... C'est une longue histoire. Il était une fois un développeur de logiciels ... ohh .. .nevermind. – OscarRyz

+0

Ok, j'ai trouvé les fichiers .class, ils sont à l'intérieur .jar "fichiers" (comme prévu) qui se trouvent à l'intérieur d'une DB :) Je suis sur le changement de la question. Obtenir des fichiers à partir blob :) – OscarRyz

Répondre

0

Je pense que ce que vous voulez accomplir est très similaire à this post

+0

Euh? ... Quelle est la réponse? Utilisation de la sérialisation/désérialisation des objets? Je n'ai pas de fichier .class – OscarRyz

+0

La réponse était d'obtenir le fichier .class à partir d'une URL. – Yishai

1

Il y avait un poste assez détaillé sur le format dans JavaWorld récemment ... Peut-être la peine de lire.

Lien: http://www.javaworld.com/community/node/2915

+0

Yeap, quelque chose dans ce sens. Je sais qu'il y a quelques outils comme ASM ou d'autres outils de manipulation de bytecode, mais je ne les ai jamais utilisés auparavant, donc je ne sais pas quel est le meilleur outil. – OscarRyz

0

Créer une classe avec le nom correct et serialVersionUID. Mettre en œuvre readObject. Utilisez ObjectInputStream.readFields pour obtenir le ObjectInputStrem.GetFields.

+0

J'ai InvalidClassException. Je suppose que j'ai besoin de savoir quel est le serialVersionUID correct. Exception dans le thread "principal" java.io.InvalidClassException: com.o.a.I; le descripteur enum a un numéro de sérieVersion non nul: 12885773312 – OscarRyz

Questions connexes