[英]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.