English 中文(简体)
如何通过命令行查看java类文件的注释?
原标题:How to view annotation of java classfile via command line?

JDK中是否有一个命令行工具,可以打印类文件中的所有注释,或者将特定的注释作为参数打印?

如果是这样的话,是否有一个等效的命令可以在jar文件中为其中包含的特定类运行?

我在谷歌上搜索了一段时间,但没有运气(

最佳回答

Correct me if im wrong, but I thought, that annotations are stripped from the classes by the compiler, unless you use the Annotation @Retention(RetentionPolicy.RUNTIME) on the Annotations itself, the information will not be preserved in the class file. If the annotations are preserved in the classfile, you can use javap (part of the jdk) to see those:

javap my.package.MyClass

更新:这似乎需要JDK7,JDK6的javap不打印注释,但您可以使用华盛顿大学网站上的以下工具来提取注释信息:

注释实用程序

问题回答

在javap 1.7或更高版本中使用-verbose或-v标志将显示保留的注释。

示例:

javap -p -v ./services/target/windup-web-services/WEB-INF/classes/org/jboss/windup/web/services/model/RegisteredApplication.class

 #50 = Utf8   Ljavax/persistence/Column;
 #64 = Utf8   Lorg/jboss/windup/web/services/validators/NotBlankConstraint;
 #67 = Utf8   Ljavax/validation/constraints/Size;
...
private java.lang.String title;
  descriptor: Ljava/lang/String;
  flags: ACC_PRIVATE
  RuntimeVisibleAnnotations:
    0: #50(#62=I#63)
    1: #64(#65=s#66)
    2: #67(#68=I#69,#70=I#63,#65=s#71




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签