# Bytecode holen aus geladener Klasse



## Guest (31. Okt 2007)

Hi,

wie komme ich an den Bytecode einer geladenen klasse?



```
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


----------



## Guest (31. Okt 2007)

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 (31. Okt 2007)

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 (5. Nov 2007)

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!


----------

