Hilbob
Hilbob

Reputation: 1

soot.SootResolver$SootClassNotFoundException: couldn't find class: kotlin.Metadata (is your soot-class-path set properly?)

I am trying to use soot to analyze the kotlin project. I have written a HelloWorld.kt script and compiled it. I bring the snippet of code bellow:

fun main(args: Array<String>) {  
   println("Hello World!")         
}

However, when I use soot to generate the CFG of its .class file, I get this errors:

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)

I just executed the following commands:

java -cp sootclasses-trunk-jar-with-dependencies.jar soot.tools.CFGViewer -cp . -pp Helloworld

I can not find what is my mistake. Could you please help me?

Upvotes: 0

Views: 279

Answers (1)

Oleg Baskakov
Oleg Baskakov

Reputation: 1

you would have to add kotlin jars into the soot's classpath to make it work

-cp .:$HOME/Downloads/kotlinc/lib/kotlin-stdlib.jar:$HOME/Downloads/annotations-23.0.0.jar -pp

PS annotations could be downloaded from https://mvnrepository.com/artifact/org.jetbrains/annotations

Upvotes: 0

Related Questions