我有一个在 jdk7 上编写的 java 源代码。并在我的机器上安装 jdk7 和 jre7。
现在我需要使用 ANT 用编译器 jdk1.6 编译这段代码。
所以我尝试在我的项目 build.xml 中添加以下几行。
<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>
这够了吗 ?还是我必须添加引导类路径?如果是,请指定我可以在构建文件中添加的语法
我有一个在 jdk7 上编写的 java 源代码。并在我的机器上安装 jdk7 和 jre7。
现在我需要使用 ANT 用编译器 jdk1.6 编译这段代码。
所以我尝试在我的项目 build.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 的类、接口或方法,它会编译,但您会遇到错误,例如NoSuchMethodError
在 Java 6 上运行它并调用 Java 6 中不存在的方法。
确保您的代码与 Java 6 兼容的最安全方法是安装 JDK 6 并使用它来编译您的代码。(注意:在您的机器上安装多个版本的 JDK 没有问题,只需将它们安装在不同的目录中)。