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

2022-08-31 19:57:51

有一段时间我试图理解,但我仍然不明白Eclipse中项目的“编译器合规性级别”到底是什么意思。我浏览了整个网站和谷歌,找不到我能理解的答案。

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

我可以做到:项目>首选项>Java构建路径>库,并将我使用的JRE库设置为JRE 6。

为什么这还不够?

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

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

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


答案 1

编译器合规性设置告诉编译器假装它是不同版本的 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 可以读取它们。


答案 2

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

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


推荐