我有一个用jdk7编写的java源代码,我的机器上有JDK7和JRE7。
现在我需要使用 ANT 使用编译器 jdk1.6 编译此代码。
所以我尝试在我的项目构建中添加以下行.xml。
<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>
这就够了吗?还是我必须添加引导类路径?如果是,请指定我可以添加到构建文件中的语法
这可能还不够。
首先,除了将target
设置为 1.6
之外,还应该将source
设置为 1.6
:
<javac source="1.6" target="1.6" srcdir="src">
让 Java 编译器知道它应该将您的代码解释为与 1.6 兼容的源代码。
但更大的问题是,这并不妨碍您使用Java 7标准库中新的类,接口和方法。如果您使用仅限 Java 7 的类、接口或方法,它将进行编译,但是当您在 Java 6 上运行它并且调用 Java 6 中不存在的方法时,您会收到类似NoSuchMethodError
的错误。
确保代码与 Java 6 兼容的最安全方法是安装 JDK 6 并使用它来编译代码。(注意:在您的机器上安装多个版本的 JDK 没有问题,只需将它们安装在不同的目录中即可)。