java - Eclipse 中的源代码兼容性设置

标签 java eclipse

我的电脑上安装了 jre7。 在 Eclipse Kepler 中,我创建了一个编译器合规级别为 1.5 的项目。 源兼容性设置也是 1.5。但这个设置不起作用。

我可以使用1.6或更高版本中声明的方法编写代码。例如:

String s = "aaa";
boolean b = s.isEmpty();

java.lang.String中的isEmpty()方法是从1.6开始的。

当然,当在真实的 jre 1.5 环境中运行生成的类文件时,我遇到了 NoSuchMethodError 异常。

这是我的来源和设置: source and settings

我该如何解决这个问题?或者这是一个 Eclipse 错误?

最佳答案

这些设置与 javac 编译器的 -source-target 标志相关,该编译器启用向后兼容性(有关说明,请参阅示例 this SO 问题和答案)。

这主要是一个技术选项,而不是一个功能,即 Eclipse 中的这些设置从来都不是为了让您摆脱了解旧 JRE 中可用和不可用的内容的负担。但 Eclipse 确实为您提供了实现这一目标的选项,甚至在 Java 编译器选项屏幕的底部显示一条警告消息,告诉您如何实现这一目标(是的,这确实涉及下载和安装 JRE 的旧(目标)版本 - 没有办法解决这个问题)。

关于java - Eclipse 中的源代码兼容性设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25803174/

相关文章:

java - 这是有效的 Java 代码吗?

eclipse - 更改 JUnit Eclipse 插件中单元测试的显示名称

java - 如何在eclipse中的 Debug模式下将变量设置为null

java - AVD 模拟器未在 Eclipse 中启动

java - 在最新的 Spring v4 中使用带有可选正文的 @RequestBody

java - 造成程序执行延迟

java - 内部 while 循环永远不会完成

eclipse - Refspec HEAD :refs/for/refs/heads/master generated by eGit/ZendStudio 9 mean? 是什么

android - Android应用项目和Android Project的区别

java - Selenium @FindBy 通过一个 xpath 或另一个查找