Не удалось загрузить файл класса

Я получаю приведенное ниже исключение времени выполнения при попытке запустить программу 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 soot-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

Кто-нибудь знает, как решить эту проблему?

1 ответ

Решение

Попробуйте использовать абсолютный путь к исполняемому файлу Java, как

$ /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/java -cp ...

Вероятно, Soley Java выполняет старую версию, которая не включает ConcurrentMap,

Другие вопросы по тегам