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之后创build的。
如果您将合规性级别设置为“JRE 6”,则会将Java 6源文件编译为Java 6类文件。
这就像将Word文档保存为“Word 97-2003格式” – 以便Word 97-2003可以读取您的文档。 您将以Java 6格式保存类文件,以便Java 6可以读取它们。
它告诉你你所遵守的是什么版本的JDK; 具体来说,你的构build目标是哪个JRE。
这是运行你的代码所需的最低JRE
描述“Java编译器合规性”设置的最简单方法是确定在“已编译的”Java代码中可以使用哪些Java虚拟机指令…以及要使用哪个库类版本。 JVM(及其库)的每个版本都可能引入新的指令(VM)或调整与JVM一起交付的类库。
您应该将该设置设置为您期望产品运行的最低级别的JVM。
Java编译器可以编译将在以前版本的JVM上运行的代码。 即使安装了JDK 6,也可以编写针对使用JDK 5的人员的代码。“编译器合规性”级别告诉Eclipse在编译项目时使用适当的设置,以确保代码在您指定的目标JVM上工作。 默认情况下,如果我记得,EclipseselectJava 5合规性。 如果您想要使用特定于Java 6或Java 7的代码function,则必须更改合规性级别。
- Eclipse导出的Runnable JAR不显示图像
- 任何方式(或快捷方式)自动导入IntelliJ IDEA中的类像在Eclipse中?
- 升级到Android SDK 2.3和ADT 8.0后,“无法获取项目的系统库”
- Eclipse IDE中的java.io.Console支持
- 没有为文档检测到语法约束(DTD或XML模式)
- 在Mac OS X上,Eclipse中的文件的快捷键是什么?
- Mac OS Lion中的Subclipse显示“无法加载默认的SVN客户端”错误
- 如何在eclipse中的类path中放置文件?
- Eclipsedebugging器中的Step Into和Step Over之间有什么区别?