我尝试在 Eclipse 中编译简单代码时遇到错误。我正在使用 jre8。
例如,当我尝试编译这段代码时:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MyProject {
public static void main (String args[])
{
List<String> myList = new ArrayList<String>();
myList.add("test");
myList.add("test2");
Collections.sort(myList);
}
}
我在 Collections.sort(myList);
行中遇到错误。
错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
at project.Principal.main(Principal.java:14)
我已经打开了 eclipse Build Path,删除了 JRE System Library [jre8] 并重新添加了它。但是没有用!我能做些什么?谢谢!
PS.: 在 Collections.sort(myList);
行中,eclipse 显示了这个错误:
无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件中间接引用的。
最佳答案
确保您的 Eclipse IDE 支持 Java 8:
第一个支持 Java 8 的 Eclipse 版本是带有附加补丁的 Eclipse Kepler SR2 (4.3.2)。 (参见:Installing Java™ 8 Support in Eclipse Kepler SR2 ,以及需要安装的相应 Marketplace Item:Java 8 support for Eclipse Kepler SR2 )。
在我看来你应该更新到 latest Eclipse Version .
使用 Luna SR2 (4.4.2) 不需要额外的补丁。
确保 1.8 JRE 在您的工作区中可用:
Windows > 首选项:Java > 安装的 JRE
如果不是这种情况,您可以使用添加按钮添加新的 JRE。
确保 JRE System Library
== JavaSE-1.8
用于您的项目
在 Package Explorer 中,您应该会看到 Java 版本:
如果这不正确,您应该打开 JRE System Library
项的上下文菜单,然后选择 Properties
菜单项。
在您的项目中,您有一个 .classpath
文件(如果您没有看到该文件,请使用 Navigator View
),它应该如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="output" path="bin"/>
</classpath>
重建你的项目
项目菜单 > 清洁...
从列表中选择您的项目或“清理所有项目”和“立即开始构建”
另见:
- @mkrakhin 在他的回答中的解释:The type java.lang.CharSequence cannot be resolved in package declaration
关于java - Eclipse 错误 : java. lang.CharSequence 无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727428/