首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译: jdk 1.7上的jdk1.6

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

Stack Overflow用户
提问于 2013-09-12 14:53:20
回答 1查看 1.7K关注 0票数 1

我有一个写在jdk7上的java源代码。让jdk7和jre7在我的机器上。

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

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

代码语言:javascript
复制
<target name="compile">
<javac target="1.6" srcdir="src"/>
</target>

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-12 15:02:28

这可能还不够。

首先,除了将target设置为1.6之外,还应该将source设置为1.6

代码语言:javascript
复制
<javac source="1.6" target="1.6" srcdir="src">

让Java编译器知道它应该将您的代码解释为1.6兼容的源代码。

但更大的问题是,这并不妨碍您使用Java7标准库中的新类、接口和方法。如果您使用Java7独有的类、接口或方法,它将被编译,但是当您在Java6上运行它时,您将得到像NoSuchMethodError这样的错误,并且您正在调用Java6中不存在的方法。

确保代码与Java 6兼容的最安全方法是安装JDK 6并使用JDK 6编译代码。(注意:在您的机器上安装多个版本的JDK没有问题,只需将它们安装在不同的目录中即可)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18757348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档