файлов классов я получаю ниже исключение во время выполнения, когда я пытаюсь запустить программу JavaНе удалось загрузить
Exception in thread "main" java.lang.RuntimeException: Could not load classfile: java.util.concurrent.ConcurrentMap
at soot.coffi.Util.resolveFromClassFile(Util.java:75)
at soot.CoffiClassSource.resolve(CoffiClassSource.java:39)
at soot.SootResolver.bringToHierarchy(SootResolver.java:215)
at soot.SootResolver.bringToSignatures(SootResolver.java:239)
at soot.SootResolver.bringToBodies(SootResolver.java:280)
at soot.SootResolver.processResolveWorklist(SootResolver.java:150)
at soot.SootResolver.resolveClass(SootResolver.java:124)
at soot.Scene.tryLoadClass(Scene.java:417)
at soot.Scene.loadBasicClasses(Scene.java:990)
at soot.Scene.loadNecessaryClasses(Scene.java:1061)
at soot.Main.run(Main.java:167)
at soot.Main.main(Main.java:141)
Команда используется
Java -cp сажу-csi.jar: ../ LIB /soot-2.5.0.jar blah.soot.SomeClass
Поскольку ConcurrentMap является одним из основных классов JRE, я думал, что он вызван файлом rt.jar, который не может быть найден/присутствовать в jdk. Поэтому я проверил свою переменную $JAVA_HOME
и указал на JDK, где rt.jar находится внутри папки lib. Итак, структура такая.
/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/rt.jar
where $JAVA_HOME = /usr/lib/jvm/java-1.7.0-openjdk.x86_64
Кто-нибудь знает, как решить эту проблему?
Пожалуйста, добавьте полную команду stacktrace и команду, которую вы используете для запуска программы. – Jens
Какую версию Java вы используете? Каков ваш основной класс - тот, у которого есть static void main (String [] args) – Adam
Попробуйте запустить ту же программу на Java 1.7 (если вы используете Java 8). – FoggyDay