Skip to main content
 首页 » 编程设计

java之.java 中的注释更改 .class 文件的字节码

2024年06月20日136虾米哥

我的理解是 Java 编译器不会在输出的 .class 文件中包含字节码中的注释。

但是我有代码:

InputStream stream = getClassLoader().getResourceAsStream(classAsPath); 
byte[] classBytes = IOUtils.toByteArray(stream); 

我为我的 java 类运行它,向 java 代码添加注释,然后重新运行它。我看到 classBytes 与添加的评论不同

请您参考如下方法:

注释不包含在类文件中。但是,编译器默认包含一些用于调试目的的元数据,其中包括行号。如果您的评论跨越一行或多行,那显然会改变所有内容的行号,因此生成的类文件也会改变。

您可以将 -g:none 传递给 javac 以避免包含行号和其他可选元数据。