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

Eclipse中的“编译器遵从性级别”是什么?

燕靖
2023-03-14

一段时间以来,我试图理解,但我仍然不知道Eclipse中项目的“编译器合规性级别”到底是什么意思。我在这个网站和谷歌上到处寻找,都找不到我能理解的答案。

比方说,我希望我的程序能够在JRE 6上运行。

我能做:项目

为什么这还不够?

我一直不明白为什么我还需要将编译器遵从性设置设置为JRE 6。

我想了解在项目中使用JRE 6与将项目的编译器符合性设置设置为JRE 6之间的区别。

编译器遵从性级别到底意味着什么?

共有3个答案

陆臻
2023-03-14

Java编译器可以编译将在以前版本的JVM上运行的代码。即使安装了JDK 6,也可能是为使用JDK 5的人编写代码。编译器遵从性级别告诉Eclipse在编译项目时使用适当的设置,以确保代码在指定的目标JVM上工作。如果我还记得的话,默认情况下,Eclipse选择Java5遵从性。如果您想使用Java 6或Java 7特有的代码特性,则必须更改遵从性级别。

赫连照
2023-03-14

它告诉您遵循哪个版本的JDK;具体来说,您的构建针对哪个JRE。

这是运行代码所需的最低JRE

任飞龙
2023-03-14

编译器遵从性设置告诉编译器假装它是不同版本的Java。

Java8编译器将以类文件格式的Java8版本产生类文件,并接受Java8个源文件。JRE 6不能加载这个版本,因为它是在JRE 6之后创建的。

如果将遵从性级别设置为“JRE 6”,它会将Java 6源文件编译为Java 6类文件。

这就像将Word文档保存为“Word 97-2003格式”——这样Word 97-2003就可以读取您的文档。您正在以Java6格式保存类文件,以便Java6可以读取它们。

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

  • 我正在尝试使用一个第三方API,在那里我可以获得对JDK 1.6之前的第三方API的支持。 我还有其他几个项目是使用JDK1.7构建的,作为产品的一部分,我还在打包JRE 1.7。 如果编译器符合性级别设置为JDK 1.6,则编译 当编译器符合性级别设置为JDK 1.6时,向第三方供应商申请支持是否安全。 更新:我假设在eclipse中设置编译器级别与设置源代码相同 我不确定是否使用JDK 1.7

  • 我安装了Java7 JDK(jdk-7u9-windows-x64.exe),并启动Eclipse Indigo尝试使用新的菱形语法的语句。它不编译。我在首选项-Java-已安装JRE中添加了jdk1.7.0_09。在首选项-Java-编译器下,我想设置1.7符合性级别,但我的下拉列表仅包含1.3-1.6。我如何让1.7出现在这里? 版本:Indigo发布构建id:20110615-0604

  • 问题内容: Eclipse的Java编译器是否只是包裹该程序的同一个内核的包装器,还是完全独立的编译器?如果是后者,为什么还要重新发明轮子呢? 问题答案: Eclipse实现了自己的编译器,称为Java Eclipse编译器(ECJ)。 它不同于Sun JDK附带的编译器javac。一个显着的区别是Eclipse编译器使您可以运行实际上未正确编译的代码。如果永远不会运行带有错误的代码块,则您的程序

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

  • 本文向大家介绍什么是ElasticSearch中的编译器?相关面试题,主要包含被问及什么是ElasticSearch中的编译器?时的应答技巧和注意事项,需要的朋友参考一下 编译器用于将字符串分解为术语或标记流。一个简单的编译器可能会将字符串拆分为任何遇到空格或标点的地方。Elasticsearch有许多内置标记器,可用于构建自定义分析器。