无法加载java.lang.CharSequence错误

时间:2018-02-15 18:24:33

标签: soot

我尝试在Windows上使用Java版本8运行此命令。

java -cp soot.jar soot.Main -cp ".;C:\Program Files\Java\jre1.8.0_151\lib\rt.jar" Example_4

我一直在: 线程“main”中的异常java.lang.Error:错误:无法加载java.lang.CharSequence。只有当我将System.out.print这样的行作为源代码的一部分时,才会发生这种情况。否则它工作正常。

源代码

package ExampleCodes;

public class Example_4
{
   public static void main(String[] args)
   {
     int a = 10;

     a++;

    if(a<10)
        a--;
    else
        a++;
    int b = a + a;
    System.out.println(a);
  }
}

2 个答案:

答案 0 :(得分:1)

请使用Soot直接分析* .class文件(推荐,因为soot的Java前端已过时),或将JDK降级到7。

另请参阅:https://github.com/soot-oss/soot/issues/896

答案 1 :(得分:0)

为了解析对System.out.println的调用,Soot需要解析它所依赖的所有基本Java类,包括CharSequence

您可以使用-pp选项,而不是在-cp中传递rt.jar。然后,Soot将从您计算机上的Java安装中自动检索rt.jar。