首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Eclipse中从Java 6源代码中获得Java 5输出?

如何在Eclipse中从Java 6源代码中获得Java 5输出?
EN

Stack Overflow用户
提问于 2009-07-28 10:09:00
回答 6查看 1.6K关注 0票数 2

在项目属性的"Java Compiler“部分,有一些针对"JDK Compliance”的设置。我想将源代码兼容性设置为6,将.class文件的兼容性设置为5。这显然是不允许的:我收到消息“类文件兼容性必须大于或等于源代码兼容性”。

这是Eclipse的限制还是Java版本兼容性的根本问题?有变通的方法吗?

我想在开发中和大多数目标上使用Java6,但我想为一些目标生成与Java 5兼容的工件。如果这意味着有两个构建,只要它是相同的源码,我就没问题。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-28 10:22:16

另请参阅this thread指出类似(较老的)问题:

"Java theory and practice: Using Java 5 language features in earlier JDKs"

除非您使用某种外部工具将Java6字节码转换为与Java1.5兼容的字节码,否则不能将类遵从性设置为1.5,将源代码编译器设置为6.0。

票数 2
EN

Stack Overflow用户

发布于 2009-07-28 10:12:26

正如Eclipse所说,您不能从java6源代码生成java5类文件,这是不可行的。如果您需要生成java5构建,则需要使用java5源代码级别。

你真的需要使用Java6源码级别吗?如果您需要使用Java6 API中的某些内容,那么当您尝试运行这些构建时,为Java5生成构建将不起作用。如果你不需要使用Java6接口,那么你也不需要使用Java6源代码兼容性。

票数 5
EN

Stack Overflow用户

发布于 2009-07-28 10:18:02

出现部分问题是因为不仅类格式发生了变化,而且Java 6还添加了/不同于Java 5的API。因此,您可能无意中使用了这些API,然后当您在Java 5上部署时,实现将会丢失。

如果Java 5对您很重要,我会在Java 5 SDK的基础上进行开发和构建。这是唯一确定一切都会按预期工作的方法。

我(曾经)设计了一个跨SDK兼容的项目。它需要两个构建(每个SDK一个),并且代码必须根据使用的SDK有条件地加载所需的API类。我真的一点也不建议你这么做!

注意:你提到了Mac。Java 6可用于Mac(不确定这是否是您提到Mac的理由)

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

https://stackoverflow.com/questions/1193165

复制
相关文章

相似问题

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