当前位置: 首页 > 知识库问答 >
问题:

设置EclipseJava编译器遵从性级别1.6是否与使用JDK1.6编译相同?

章子航
2023-03-14

我正在尝试使用一个第三方API,在那里我可以获得对JDK 1.6之前的第三方API的支持。

我还有其他几个项目是使用JDK1.7构建的,作为产品的一部分,我还在打包JRE 1.7。

如果编译器符合性级别设置为JDK 1.6,则编译

当编译器符合性级别设置为JDK 1.6时,向第三方供应商申请支持是否安全。

更新:我假设在eclipse中设置编译器级别与设置源代码相同

我不确定是否使用JDK 1.7设置源代码进行编译

共有3个答案

申宜
2023-03-14

实际上,您可以指定。“首选项”中的类文件版本兼容性-

然而,“Compliance 1.6”并不能确保您获得与使用JDK1完全相同的结果。6,但java标准确保使用1.6构建的应用程序在同一平台上运行

因此,如果你真的担心不兼容,那么在一台既有JRE 1.6的机器上(我想是在你的CI服务器上)构建一个项目特定的设置1.6,对于这个项目和其他项目都有JRE 1.7,并在你的发行版中捆绑一个1.7,Sun/oracle/java可以保证它正常运行。

也就是说,如果代码是用JDK 1.6构建的,并且被其他JDK使用

然而,如果你害怕现实世界的问题(涉及金钱),用真正的JDK 1.6构建标记为1.6的代码是唯一明智的做法。

所以我认为你可以安全地“要求支持”,在1.6中构建,在1.7中使用罐子。

裴嘉许
2023-03-14

是的,如果您将compliance level设置为1.6进行编译,它将能够在java 6上运行——编译器将保证这一点。它也应该能够在java 7上运行,因为JRE是向后兼容的。

白越
2023-03-14

问题在于版本之间JavaAPI的变化。有些类和方法在Java7中可用,但在Java6和其他方式中不可用。代码用Java7编译,但由于缺少类或方法,它不会用Java6运行。

除非使用Java6JDK进行编译,否则不能百分之百确定。

 类似资料:
  • 我需要在命令行上编译一个Java程序,我正在尝试将编译器级别设置为更低的(1.6)。我试过这样但没有用:

  • 一段时间以来,我试图理解,但我仍然不知道Eclipse中项目的“编译器合规性级别”到底是什么意思。我在这个网站和谷歌上到处寻找,都找不到我能理解的答案。 比方说,我希望我的程序能够在JRE 6上运行。 我能做:项目 为什么这还不够? 我一直不明白为什么我还需要将编译器遵从性设置设置为JRE 6。 我想了解在项目中使用JRE 6与将项目的编译器符合性设置设置为JRE 6之间的区别。 编译器遵从性级别

  • 当我从Eclipse构建到maven构建时,我发现了项目中的许多问题。我使用2.5.1编译器插件。 JDK是开放的-JDK-7 我在一个新项目中隔离了这个问题,并对其进行了深入研究。问题是: 这无法使用javaC进行编译(但在Eclipse中工作),并说明以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:2.5.1:项目测试时编译(默认编译):编译失败 [错误]/hom

  • 问题内容: 我正在使用Go(6g)编译GTK应用程序,我想知道是否有编译器/链接器选项,使其成为Windows可执行文件,而不是控制台可执行文件。MinGW为此提供了- mwindows选项,当前我不得不使用令人讨厌的十六进制编辑器手动更改PE标头。 问题答案: “标志列表”参数在每个5l,6l或8l链接器调用上传递 编译软件包和依赖项 (仅在6l / 8l中)编写Windows PE32 + G

  • 在我的 maven 项目中,我目前正在将我的 Java 代码与一些 Groovy 代码混合在一起。在这一点上,我主要使用Groovy来构建豆子。我的一些Java代码直接使用Groovy豆。 我这样配置Maven编译器插件:- 当我使用运行我的测试用例时,它工作得很好。 然而,当我通过右键单击测试文件直接从IntelliJ运行测试用例并运行它时,Groovy bean上会出现“找不到符号”错误。当我