[英]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.