尝试使用SOOT时出现NoClassDefFoundError异常



我正在尝试使用SOOT生成调用图。然而,当我传递给它一些要分析的类时,会抛出异常NoClassDefFoundError。我使用以下两个教程来执行一些命令:http://www.brics.dk/SootGuide/sootsurvivorsguide.pdf和http://www.bodden.de/2008/08/21/soot-command-line/#obtaining.

我已经将要分析的java源代码放在SOOT的同一类路径中。因此,当我要执行时,我使用"."来指定当前目录。以下是我正在执行的命令:

java -cp jasminclasses-2.5.0.jar:sootclasses-2.5.0.jar:plyglot-1.3.5.jar:.soot.Main -cp . MainFrame

即使我省略了-cp并立即调用MainFrame,也会生成同样的错误。

有人知道为什么会抛出这种异常吗?

第一个类路径字符串看起来很奇怪,实际上您没有调用soot.Main类。试试看:

java -cp jasminclasses-2.5.0.jar:sootclasses-2.5.0.jar:plyglot-1.3.5.jar soot.Main -cp . MainFrame

编辑

关于您的最后一条注释,它看起来像是一个典型的类路径错误。

如果您执行上面问题中的行,Java将尝试在类MainFrame(默认包)中启动main方法,但找不到该类。使用我的(正确的!)命令,java尝试查找soot.Main

再次仔细检查类路径:您必须提供正确的库路径。实际的命令期望所有三个库加上MainFrame.class都在当前目录中。

相关内容

  • 没有找到相关文章

最新更新