.classファイル内のクラスのパッケージ名とクラス名を確認するツール
-
29-09-2019 - |
質問
Java .Classファイルのコンテンツを照会させるためのツールやテクニックはありますか?クラスの完全に適格な名前と、それが定義する方法を知りたいです。おそらくそうだと思いました javap
これで私を助けることができますが、私はその方法を理解することはできません。
解決
.classファイルに含まれるクラスは、常にファイル名と同じです(.classを除く)
実際には、はい。私が出会ったすべてのJava実装は、ロードされるクラスを見つけるためにクラスファイルパス名に依存しています。
理論的には、クラスローダー たぶん......だろう したがって、他のメカニズムを使用してください たぶん......だろう クラスがクラス名と関係がないファイルにクラスを保存します。しかし、私はそれをすることで利点がないと思います。
Groovy、Jython、Scalaなどの他の言語を使用していても?
これらの言語が標準のクラスローダーによってロードされるバイトコードファイルにコンパイルされることを考えると、Bytecodeファイルのクラス名がファイルパス名に対応することはほとんど与えられていません...それ以外の場合はクラスローダーができませんクラスファイルを見つけます。ただし、これは必ずしもBytecodeファイルのクラス名がSCALA / Jython / Groovyと同一であることを意味するわけではありません。ソースコードで使用される識別子はそうです。確かに、これはJavaにも当てはまりません。たとえば、Javaソースコードの識別子と同じではない匿名および内部クラスのクラスファイル名。
他のヒント
電話 javap ClassName
(いいえ javap ClassName.class
).
もしあなたの .class
ただ javap ClassName
もしあなたの .class
サブフォルダーにいます javap path/to/ClassName
また javap path.to.ClassName
資力 :
これを試して Java Decompiler. 。あなたが望む情報をあなたに与えるべきです。