0

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

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

我不断收到:线程“主”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);
  }
}
4

2 回答 2

1

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

另见:https ://github.com/soot-oss/soot/issues/896

于 2020-10-16T03:09:19.927 回答
0

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

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

于 2018-04-19T20:32:35.773 回答