繁体   English   中英

什么是Eclipse中的“编译器合规级别”?

[英]What is “compiler compliance level” in Eclipse?

有一段时间我试图理解,但我仍然没有得到Eclipse中项目的“编译器合规级别”。 我查看了这个网站和谷歌,找不到我能理解的答案。

假设我希望我的程序能够在JRE 6上运行。

我可以这样做:Project> Preferences> Java Build Path> Libraries,并将我使用的JRE库设置为JRE 6。

为什么这不够?

我永远不明白为什么我还需要将编译器合规性设置设置为JRE 6。

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

编译器合规性级别究竟是什么意思?

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

Java 8编译器将生成Java 8版本的类文件格式的类文件,并接受Java 8源文件。 JRE 6无法加载此版本,因为它是在JRE 6之后创建的。

如果将合规性级别设置为“JRE 6”,则会将Java 6源文件编译为Java 6类文件。

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

它告诉你你所遵循的JDK版本; 具体而言,您使用构建定位哪个JRE。

它是运行代码所需的MINIMUM JRE

描述“Java编译器合规性”设置的最简单方法是确定可以在“已编译”的Java代码中使用哪些Java虚拟机指令...以及要使用哪些库类版本。 JVM(及其库)的每个版本都可能引入新指令(VM)或调整与JVM一起提供的类库。

您应该将设置设置为您希望运行产品的最低JVM级别。

Java编译器可以编译将在JVM的早期版本上运行的代码。 即使安装了JDK 6,也可以编写针对使用JDK 5的人员的代码。编译器合规性级别告诉Eclipse在编译项目时使用适当的设置,以确保代码可以在您指定的目标JVM上运行。 默认情况下,如果我记得,Eclipse选择了Java 5 Compliance。 如果要使用特定于Java 6或Java 7的代码功能,则必须更改合规性级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM