Tool Paketnamen und Klassennamen der Klasse innerhalb einer Class-Datei zu überprüfen,

StackOverflow https://stackoverflow.com/questions/3923799

  •  29-09-2019
  •  | 
  •  

Frage

Gibt es ein Werkzeug oder Technik mir den Inhalt einer Datei .class Java abfragen zu lassen? Ich mag die vollständig qualifizierten Namen der Klasse wissen, und welche Methode es definiert. Ich dachte, dass vielleicht javap mir dabei helfen könnte, aber ich kann nicht herausfinden, wie.

War es hilfreich?

Lösung

  

Ist die Klasse in der Class-Datei enthalten ist immer der gleiche wie der Dateiname (ohne .class-)

In der Praxis ja. Jede Java-Implementierung mir begegnet ist, verläßt sich auf Klassendatei Pfadname Klassen finden geladen werden, etc.

In der Theorie ein Classloader könnte einen anderen Mechanismus verwenden, und daher könnte Speicher-Klassen in Dateien, die keine Beziehung zu den Klassennamen tragen. Allerdings sehe ich keinen Vorteil, das zu tun.

  

auch wenn ich eine andere Sprache wie Groovy, Jython oder Scala?

Da diese Sprachen zu Bytecode-Dateien erstellen, die dann durch Standardklassenlader geladen wird, dann ist es ziemlich selbstverständlich, dass die Klassennamen in den Bytecode-Dateien in die Datei Pfadnamen entsprechen ... sonst die Klassenlade würde nicht der Lage sein, die Klassendateien zu suchen. Allerdings bedeutet dies nicht zwangsläufig, dass die Klassennamen in den Bytecode-Dateien zu Scala / Jython / Groovy identisch sind die Bezeichner im Quelltext verwendet. Tatsächlich ist dies für Java nicht einmal wahr; z.B. Namen der Klassendatei für anonyme und innere Klassen für nicht die gleichen wie die Bezeichner in der Java-Quellcode.

Andere Tipps

Anruf javap ClassName (nicht javap ClassName.class).

Wenn Ihr .class nur javap ClassName
Wenn Ihr .class ist in einem Unterordner javap path/to/ClassName oder javap path.to.ClassName


Ressourcen:

Versuchen Sie, diese Java Decompiler . Sollten Sie die Informationen, die Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top