2015-07-20 3 views
1

Я создал файл банку, используяИсключение в потоке «главный» java.lang.NoClassDefFoundError: Java/Util/функция/Predicate

mvn assembly:assembly -DdescriptorId=jar-with-dependencies 

и я запускаю его на окнах и она отлично работает и работает, как ожидалось , Затем я запускаю его на Ubuntu, и это дает следующее исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: java/util/function/Predicate 
at Maxima_ImageJ.run(Maxima_ImageJ.java:13) 
at Maxima_ImageJ.main(Maxima_ImageJ.java:27) 
Caused by: java.lang.ClassNotFoundException: java.util.function.Predicate 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 2 more 

Я понятия не имею, почему он работает по-разному в Windows, и Ubuntu. Если кто-то это сделает, пожалуйста, помогите. Связано ли это с версиями java?

+0

Какую версию java вы используете? Это не будет работать для версии jre менее 1,8 (java 8) – barunsthakur

+0

Я думаю, что по умолчанию на моей машине Ubuntu равен 1.7.0_75. Что не будет работать на версии jre менее 1,8? –

+1

java.util.function.Predicate был представлен как часть java 8, поэтому код не будет работать для jre <1,8 – barunsthakur

ответ

2

Проверьте версию java, используя команду ниже.

readlink -f $ (который ява)

Если оно меньше, чем 1,8, то вам необходимо обновить Java_Version.

Один из способов - отредактировать файл .bashrc.

4

Установить путь класса к Java 1.8 как java.util.function.Predicate является частью JavaSE8 и не будет доступен в 1.7 некоторых из команд set, которые будут использоваться перед выполнением команды maven.

set path=C:\Program Files\Java\jdk1.8.0_05\bin//UPTO Bin 
set JRE_HOME=C:\Program Files\Java\jre8//Upto Root folder of JRE 
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_05//UPTO Root folder of JDK 
Смежные вопросы