Eclipse Error: java.lang.CharSequence cannot be resolved

前端 未结 2 493
耶瑟儿~
耶瑟儿~ 2021-02-08 11:19

I\'m getting a error trying to compile a simple code in Eclipse. I\'m using jre8.

For example, when I try to compile this code:

import java.util.ArrayLis         


        
相关标签:
2条回答
  • 2021-02-08 12:02

    Ensure that your Eclipse IDE supports Java 8:

    The first Eclipse version supporting Java 8 was Eclipse Kepler SR2 (4.3.2) with an additional patch. (See: Installing Java™ 8 Support in Eclipse Kepler SR2, and the corresponding Marketplace Item that needs to be installed: Java 8 support for Eclipse Kepler SR2).

    In my opinion you should udpate to the latest Eclipse Version.

    With Luna SR2 (4.4.2) no additional patch is necessary.


    Ensure the 1.8 JRE is available in your Workspace:

    Windows > Preferences: Java > Installed JREs

    Installed JREs

    If this is not the case you can add a new JRE with the add button.


    Ensure that JRE System Library == JavaSE-1.8 for your Project

    In the Package Explorer, you should see the Java version:

    Package Explorer

    If this is not correct you should open the context menu the JRE System Library item and select the Properties menu entry.

    JRE System Library - Properties

    In your project you have a .classpath file (Use the Navigator View if you do not see the file), that should looks like this:

    <?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>
    

    Rebuild your project

    Project Menu > Clean...

    Select your project from the list or "Clean all projects" and "Start a build immediately"


    See also:

    • Explaination from @mkrakhin in his answer: The type java.lang.CharSequence cannot be resolved in package declaration
    0 讨论(0)
  • 2021-02-08 12:20

    This is because the BytecodeParser class in soot.JastAddJ doesn't support higher version of java class file format.The CONSTANT_MethodHandle,CONSTANT_MethodType and CONSTANT_InvokeDynamic of constant pool type missed.Below is my solution to fix the question:

    (1) add the type int soot.JastAddJ.BytecodeParser:

    private static final int CONSTANT_MethodHandle=15;
    private static final int CONSTANT_MethodType=16;
    private static final int CONSTANT_InvokeDynamic=18;
    

    (2) add 3 classes to support the parse:

    in the method parseEntry of soot.JastAddJ.BytecodeParser,add

    CONSTANT_MethodHandle_Info, CONSTANT_MethodType_Info, CONSTANT_InvokeDynamic_Info

    in the switch case block.

    Now,soot can run successfully.

    0 讨论(0)
提交回复
热议问题