Frage

Ich spiele um mit BCEL. Ich verwende es nicht Bytecode zu erzeugen, sondern ich versuche, die Struktur der bestehenden kompilierten Klassen zu überprüfen.

Ich muß eine beliebige .class-Datei irgendwo auf meiner Festplatte verweisen zu können und ein Java Objekt auf der Grundlage dieser. Im Idealfall würde ich zu vermeiden, wie die gegebene Klasse zu meinem Classpath hinzuzufügen.

War es hilfreich?

Lösung

Der einfachste Weg ist es, eine ClassParser mit dem Dateinamen zu erstellen und rufen Parse (). Alternativ können Sie SyntheticRepository verwenden und eine Classpath liefern (das ist nicht Classpath, IYSWIM).

Andere Tipps

Die bestehende .class- kann Klasse java lang Klasse-Objekt geladen werden. Dann kann es in BCEL Zwischenjava Struktur umgewandelt werden. Der folgende Code kann helfen: -

Class<?> javaClass1 = null;
javaClass1 = ucl.loadClass("com.sample.Customer");
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
new ClassParser(classfilebytearrayhere).parse()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top