我有一个写在jdk7上的java源代码。让jdk7和jre7在我的机器上。
现在我需要使用ANT用编译器jdk1.6编译这段代码。
因此,我尝试在我的项目build.xml中添加以下代码行。
<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>这足够了吗?或者我必须添加bootclasspath?如果是,请指定我可以添加到构建文件中的语法
发布于 2013-09-12 15:02:28
这可能还不够。
首先,除了将target设置为1.6之外,还应该将source设置为1.6
<javac source="1.6" target="1.6" srcdir="src">让Java编译器知道它应该将您的代码解释为1.6兼容的源代码。
但更大的问题是,这并不妨碍您使用Java7标准库中的新类、接口和方法。如果您使用Java7独有的类、接口或方法,它将被编译,但是当您在Java6上运行它时,您将得到像NoSuchMethodError这样的错误,并且您正在调用Java6中不存在的方法。
确保代码与Java 6兼容的最安全方法是安装JDK 6并使用JDK 6编译代码。(注意:在您的机器上安装多个版本的JDK没有问题,只需将它们安装在不同的目录中即可)。
https://stackoverflow.com/questions/18757348
复制相似问题