Exception in thread "main" java.lang.NoClassDefFoundError: java/util/function/Predicate
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/function/Predicate
我已经使用
创建了一个 jar 文件
mvn assembly:assembly -DdescriptorId=jar-with-dependencies
我 运行 它在 windows 上,它工作正常并且按预期工作。然后我 运行 它在 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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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的版本有关系吗?
将 class 路径设置为 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
使用以下命令检查您的 java 版本。
readlink -f $(其中java)
如果小于1.8,则必须更新Java_Version。
一种方法是在 .bashrc 文件中进行编辑。
我已经使用
创建了一个 jar 文件mvn assembly:assembly -DdescriptorId=jar-with-dependencies
我 运行 它在 windows 上,它工作正常并且按预期工作。然后我 运行 它在 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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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的版本有关系吗?
将 class 路径设置为 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
使用以下命令检查您的 java 版本。
readlink -f $(其中java)
如果小于1.8,则必须更新Java_Version。
一种方法是在 .bashrc 文件中进行编辑。