Eclipse错误:无法解析java.lang.CharSequence
我试图在Eclipse中编译简单代码时出错。我正在使用jre8 例如,当我尝试编译此代码时:Eclipse错误:无法解析java.lang.CharSequence,java,eclipse,Java,Eclipse,我试图在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 ArrayL
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);
}
}
我已经打开了eclipse构建路径,删除了JRE系统库[jre8],并再次添加了它。但是没用!我能做什么?谢谢
注:在Collections.sort(myList)中代码>行eclipse显示此错误:
无法解析java.lang.CharSequence类型。它直接从必需的.class文件引用。确保您的Eclipse IDE支持Java 8:
支持Java8的第一个Eclipse版本是EclipseKeplerSR2(4.3.2)及其附加补丁。(请参阅:,以及需要安装的相应市场项目:)
依我看,你应该去看电影
对于Luna SR2(4.4.2),不需要额外的补丁
确保1.8 JRE在您的工作区中可用:
Windows>首选项:Java>已安装的JRE
如果不是这样,您可以使用add按钮添加新的JRE
确保项目的JRE系统库JavaSE-1.8
在Package Explorer中,您应该看到Java版本:
如果这不正确,您应该打开上下文菜单JRE系统库
项并选择属性
菜单项
在项目中有一个.classpath
文件(如果看不到该文件,请使用导航器视图
),该文件应如下所示:
<?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在其回答中的解释:
private static final int CONSTANT_MethodHandle=15;
private static final int CONSTANT_MethodType=16;
private static final int CONSTANT_InvokeDynamic=18;
(2) 添加3个类以支持解析:
在coomy.JastAddJ.BytecodeParser的方法parseEntry
中,添加
常量方法句柄信息,
常量方法类型信息,
常量调用动态信息
在开关盒块中
现在,Soatom可以成功运行了。您使用的是什么JDK?jdk1.8.0_05(直接从文件夹中)您尝试过创建新的工作区吗?您的Eclipse版本是什么?这是一个老问题,但我会把你的答案标记为正确答案,以帮助其他人。无论如何谢谢,我也有同样的问题。但是我的eclipse使用的是jre1.8.0.45。但是我仍然面临“StringBuilder”或“StringBuffer”类的问题。“您应该打开JRE系统库项的上下文菜单,然后选择属性菜单项“我该怎么做?这些开关盒应该做什么?”?您能帮助我吗?要解析java类文件中的常量池,您可以学习java类文件的详细格式。
private static final int CONSTANT_MethodHandle=15;
private static final int CONSTANT_MethodType=16;
private static final int CONSTANT_InvokeDynamic=18;