Wie Lesen Sie den vollständig qualifizierten Namen ein .Klasse Datei
Hey, ich denke, der Titel sagt es, aber immer noch.
Muss ich Extrakt die vollständig qualifizierten Namen des Objekts von seiner kompiliert .Klasse - Datei, kann jemand mich in die richtige Richtung?
Dank,
Adam.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update: laden Sie die class-Datei in eine
byte[]
(mit standard-i/o) und verwenden Sie danngetClass().getClassLoader().defineClass(...)
Benutzen Sie eine Bibliothek wie BCEL zu Lesen, die classfile in den Speicher und Abfragen für den Namen der Klasse.
Kann man das Lesen durch das Parsen der binären. Die class Datei format definiert wird, in der Die VM-Spec.
Haben Sie einen Blick auf die DataInputStream wenn Sie neu zu analysieren Binärdateien.
Je nachdem, welche IDE Sie verwenden, es könnte ein Instrument sein, dies zu tun. Zum Beispiel in eclipse können Sie ein Drilldown zu den .Klasse-Datei und der rechten Maustaste darauf und wählen Sie "kopieren" fully qualified name".
Älteren eclipse Versionen möglicherweise nicht über diese Funktion, jedoch habe ich dieses plugin vor:
http://www.jave.de/eclipse/copyfully/index.html
Es funktioniert so ziemlich die gleiche Weise. Hoffe, das hilft.
Können Sie einen Blick zum Beispiel auf die AnnotationScanner aus der JSF-Implementierung, die Sie tun, laden Sie die Klassen manuell (um zu vermeiden, perm-space Verschmutzung) zu finden JSF-Annotationen. Insbesondere schau mal hier: