【发布时间】:2015-07-20 19:59:35
【问题描述】:
我创建了一个 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$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的版本有关吗?
【问题讨论】:
-
你运行的是什么版本的java?这不适用于低于 1.8(java 8) 的 jre 版本
-
我认为我的 Ubuntu 机器中的默认值是 1.7.0_75。 1.8以下的jre版本不能运行什么?
-
java.util.function.Predicate 作为 java 8 的一部分引入,因此代码不适用于 jre
标签: java windows maven ubuntu jar