0

我需要将更多日志添加到特定 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年

4

1 回答 1

1

当您使用 -target 命令行开关时,编译器会生成与旧版本兼容的类文件。

您拥有的文件可能是用-source 1.2 target 1.2. 兼容性只影响使用的字节码指令,它不会阻止您使用更新的 API。

于 2013-06-25T08:05:27.280 回答