您的javadoc是否编译到类文件中?
在编译您的javadoc是否编译到类文件中?,java,compiler-construction,Java,Compiler Construction,在编译java文件时,它是否也将javadocs和注释嵌入到类文件中 例如,如果您有大型javadoc,它会影响类文件的总体大小吗?或者编译器是否会忽略以/和/*开头的所有内容?否,注释不会编译到类文件中。这包括JavaDocs 相反,您需要在源代码上使用JavaDoc工具(如)来生成文档。不,类文件只是二进制数据 注释可以保留(取决于注释) 注释不会影响类文件的大小。否。有几个调试选项会影响类文件的大小,但注释绝不是生成的.class文件的一部分 一些估计: -g:line只添加行号信息(几
java
文件时,它是否也将javadocs和注释嵌入到类文件中
例如,如果您有大型javadoc,它会影响类文件的总体大小吗?或者编译器是否会忽略以
/
和/*
开头的所有内容?否,注释不会编译到类文件中。这包括JavaDocs
相反,您需要在源代码上使用JavaDoc工具(如)来生成文档。不,类文件只是二进制数据 注释可以保留(取决于注释)
注释不会影响类文件的大小。否。有几个调试选项会影响类文件的大小,但注释绝不是生成的
.class
文件的一部分
一些估计:
只添加行号信息(几个字节)-g:line
包括所有变量的全名。这通常是最昂贵的选择-g:vars
只添加源文件的名称(不带路径)-g:source
-parameters
使方法参数的名称可以通过反射访问。这与-g:vars
无关
注释(因此JavaDoc)永远不会添加到字节码中
要查看
.class
文件中的结果,请使用javap-v
加上文件的路径。@deprecated
在JavaDoc中(不要与@deprecated
混淆)用于设置位。您尝试过吗?即使设置了-g:source
,也不包括Javadoc。我试图用JAD反编译类。@ctapobep:我刚刚用Java 6和7进行了反编译,你说得对:-g:source
在类文件中不包含源代码。几分钟的刺激和谷歌搜索并没有发现这个选项的真正作用和原因:-/不幸的是,这个答案完全是错误的。Java源代码、注释或Javadoc从不包含在.class
文件中。-g:source
选项只会导致编译器将(剥离的)源文件路径作为.class
文件常量池中的属性发出。@StephenC我无法删除它,因为它已被接受。让我们把它修好。什么是“剥离源路径”?它基本上是(AFAIK)删除了一些前缀的源文件的路径名。我需要再次深入研究代码,弄清楚前缀是什么/如何确定。不包括剥离的细节是合理的。。。因为我们实际上谈论的是一些不符合OP想要(或想要避免)的事情。