soot-oss / soot

Soot - A Java optimization framework
GNU Lesser General Public License v2.1
2.88k stars 708 forks source link

Missing sunrsasign.jar file #933

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hello, so I am trying to make this example work.

However, when I run it i get the following error:

$ java -cp "transformer.jar:soot2.jar" edu.hkust.leap.Main example.Example
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at edu.hkust.leap.Main.run(Main.java:39)
    at edu.hkust.leap.Main.transform(Main.java:28)
    at edu.hkust.leap.Main.main(Main.java:22)
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.Exception: Error: The path '/opt/oracle-jdk/jdk1.7.0_07/jre/lib/sunrsasign.jar' does not exist.
    at soot.SourceLocator.getClassSourceType(SourceLocator.java:291)
    at soot.SourceLocator.lookupInClassPath(SourceLocator.java:568)
    at soot.asm.AsmClassProvider.find(AsmClassProvider.java:35)
    at soot.SourceLocator.getClassSource(SourceLocator.java:176)
    at soot.SootResolver.bringToHierarchyUnchecked(SootResolver.java:213)
    at soot.SootResolver.bringToHierarchy(SootResolver.java:208)
    at soot.SootResolver.bringToSignatures(SootResolver.java:266)
    at soot.SootResolver.bringToBodies(SootResolver.java:311)
    at soot.SootResolver.processResolveWorklist(SootResolver.java:163)
    at soot.SootResolver.resolveClass(SootResolver.java:133)
    at soot.Scene.loadClass(Scene.java:853)
    at soot.Scene.loadClassAndSupport(Scene.java:839)
    at edu.hkust.leap.transformer.TransformClass.setRecordOptions(TransformClass.java:129)
    at edu.hkust.leap.transformer.TransformClass.transformRuntimeVersion(TransformClass.java:74)
    at edu.hkust.leap.transformer.TransformClass.processAllAtOnce(TransformClass.java:45)
    at edu.hkust.leap.transformer.LEAPTransform.main(LEAPTransform.java:13)
    ... 7 more
Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: Error: The path '/opt/oracle-jdk/jdk1.7.0_07/jre/lib/sunrsasign.jar' does not exist.
    at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
    at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
    at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:137)
    at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2348)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2320)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
    at soot.SourceLocator.getClassSourceType(SourceLocator.java:289)
    ... 22 more
Caused by: java.lang.Exception: Error: The path '/opt/oracle-jdk/jdk1.7.0_07/jre/lib/sunrsasign.jar' does not exist.
    at soot.SourceLocator$1.load(SourceLocator.java:70)
    at soot.SourceLocator$1.load(SourceLocator.java:65)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
    ... 28 more

I assume the mentioned file /opt/oracle-jdk/jdk1.7.0_07/jre/lib/sunrsasign.jar cannot be found as it doesnt exists in the java 7, which I am currently using.

Does soot use sunrsasign ? If yes, how come it is not being found in the java7?

anddann commented 6 years ago

Hi, looks like you use http://www.cse.ust.hk/prism/leap/. Unfortunately, I don't know what happens edu.hkust.leap.transformer.LEAPTransform.main since it is not part of Soot. Maybe you can try to ask the leap maintainer for help.

ghost commented 6 years ago

Hey, the issue was called by wrong leap libraries, which somehow missuesed the soot library, additionally i would like to point out that java6 is required for that thing to run, maybe some1 will like this info... Regards