2015-01-30 5 views
0

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

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

+0

Пожалуйста, добавьте полную команду stacktrace и команду, которую вы используете для запуска программы. – Jens

+0

Какую версию Java вы используете? Каков ваш основной класс - тот, у которого есть static void main (String [] args) – Adam

+0

Попробуйте запустить ту же программу на Java 1.7 (если вы используете Java 8). – FoggyDay

ответ

1

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

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

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

+0

Вы также должны убедиться, что ваша конфигурация Linux Java указывает на версию, в которой вы хотите: 'sudo/usr/sbin/alternatives --config java': http://tech.lanesnotes.com/2008/03/using-alternatives -in-linux-to-use.html – FoggyDay

+0

@nave - пожалуйста, «примите» ответ Питера Ммм :) – FoggyDay

Смежные вопросы