我需要将更多日志添加到特定java模块的几个类中(模块已编译,没有可用的源)。我已成功提取源代码,但我对使用哪个JDK版本重新编译修改后的类感到困惑。
javap -verbose className.class
显示
...
major version: 46
...
46 version
是否意味着最初的课程是使用 JDK 1.2 编译的
但源文件包含从java nio:
import java.nio.ByteBuffer;
在 java 5 中实现 问题是:它可以如何?
注意:
+在open-jdk 1.5下运行的整个系统
+创建日期模块〜2006年
答案 0 :(得分:1)
当您使用-target命令行开关时,编译器会生成与旧版本兼容的类文件。
您拥有的文件可能是使用-source 1.2 target 1.2
编译的。兼容性仅影响使用的字节码指令,它不会阻止您使用较新的API。