Bytecode holen aus geladener Klasse

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

wie komme ich an den Bytecode einer geladenen klasse?


Code:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(Class.forName("blablabla"));
oos.close();
rd.getContentWrapper().append(baos.toByteArray());

// geht nicht, es fällt: java.lang.ClassFormatError: org/enexus/starter/corefunctions/eNexusStaticShared (Bad magic number)

hat jemand eine Idee?
BCEL will ich nicht verwenden
 
G

Guest

Gast
Das "Bad magic number" klingt mir nach Java-Version-Inkombatibilität. Kann es sein, dass dein Code mit
anderer Version von Java compiliert ist, als die Klassen, die du serialisieren möchtest?
 

Ullenboom

Bekanntes Mitglied
Du bekommst nicht den Bytecode einer Klasse, in dem du das Class-Objekt seralisiert. Der Bytecode ist aus Java nicht zugänglich und du müsstest die .class-Datei wie eine beliebige Ressourcen-Datei laden.

Grüße

Christian Ullenboom
 

nocturne

Bekanntes Mitglied
Ullenboom hat gesagt.:
Du bekommst nicht den Bytecode einer Klasse, in dem du das Class-Objekt seralisiert. Der Bytecode ist aus Java nicht zugänglich und du müsstest die .class-Datei wie eine beliebige Ressourcen-Datei laden.

Grüße

Christian Ullenboom
Du meinst ohne BCEL!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben