繁体   English   中英

交叉编译:jdk 1.7上的jdk1.6

[英]Cross compilation : jdk1.6 on jdk 1.7

我在jdk7上编写了Java源代码。 并在我的机器上安装了jdk7和jre7。

现在,我需要使用ANT使用编译器jdk1.6编译此代码。

因此,我尝试在我的项目build.xml中添加以下行。

<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>

这够了吗 ? 还是我必须添加bootclasspath? 如果是,请指定我可以在构建文件中添加的语法

那可能还不够。

首先,除了将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没问题,只需将它们安装在不同的目录中即可)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM