我正在尝试使用烟尘来分析kotlin项目。我写了一个HelloWorld。Kt脚本并编译它。我把下面的代码片段:
fun main(args: Array<String>) {
println("Hello World!")
}
但是,当我使用烟尘生成它的.class文件的CFG时,我得到这样的错误:
soot.SootResolver$SootClassNotFoundException: couldn't find class: kotlin.Metadata (is your soot-class-path set properly?)
at soot.SootResolver.bringToHierarchyUnchecked(SootResolver.java:246)
at soot.SootResolver.bringToHierarchy(SootResolver.java:222)
at soot.SootResolver.bringToSignatures(SootResolver.java:293)
at soot.SootResolver.processResolveWorklist(SootResolver.java:180)
at soot.SootResolver.resolveClass(SootResolver.java:142)
at soot.Scene.loadClass(Scene.java:1001)
at soot.Scene.loadClassAndSupport(Scene.java:988)
at soot.Scene.loadNecessaryClass(Scene.java:1790)
at soot.Scene.loadNecessaryClasses(Scene.java:1802)
at soot.Main.run(Main.java:241)
at soot.Main.main(Main.java:141)
at soot.tools.CFGViewer.main(CFGViewer.java:101)
我刚刚执行了以下命令:
java -cp sootclasses-trunk-jar-with-dependencies.jar soot.tools.CFGViewer -cp . -pp Helloworld
我找不到我的错误是什么。你能帮帮我吗?
你必须将kotlin jars添加到soot的类路径中才能使其工作
-cp .:$HOME/Downloads/kotlinc/lib/kotlin-stdlib.jar:$HOME/Downloads/annotations-23.0.0.jar -pp
PS注释可从https://mvnrepository.com/artifact/org.jetbrains/annotations
下载