Erstellen Sie ein Objekt aus BCEL Java beliebigen .class-Datei
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.
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()