用于检查.class文件中类的包名称和类名的工具

时间:2010-10-13 12:50:39

标签: java .class-file

是否有一些工具或技术让我查询Java .class文件的内容?我想知道类的完全限定名称以及它定义的方法。我想也许javap可以帮助我解决这个问题,但我无法弄清楚如何。

3 个答案:

答案 0 :(得分:4)

致电javap ClassName(不是javap ClassName.class)。

如果您的.class只是javap ClassName 如果您的.class位于子文件夹javap path/to/ClassNamejavap path.to.ClassName


资源:

答案 1 :(得分:1)

  

.class文件中包含的类是否始终与文件名相同(不包括.class)

在实践中,是的。我遇到的每个Java实现都依赖于类文件路径名来定位要加载的类,等等。

理论上,类加载器可以使用其他一些机制,因此可以将类存储在与类名无关的文件中。但是,我认为这样做没有任何好处。

  

即使我使用其他语言,如Groovy,Jython或Scala?

鉴于这些语言编译为字节码文件然后由标准类加载器加载,那么字节码文件中的类名对应于文件路径名几乎是给定的...否则类加载器不会能够找到类文件。但是,这并不一定意味着字节码文件中的类名与Scala / Jython / Groovy中的源代码中使用的标识符相同。实际上,Java甚至都不是这样。例如匿名和内部类的类文件名与Java源代码中的标识符不同。

答案 2 :(得分:0)

试试这个Java Decompiler。应该给你你想要的信息。