【发布时间】:2018-10-26 15:49:37
【问题描述】:
当我尝试运行我的 jar 应用程序时,即使我在类路径中引用了包含该类的库,我也会收到 NoClassDefFoundError。
这是导致它的行(在线程的启动方法中):
Spark.staticFiles.location("/public");
这为 java 的 Spark 框架定义了静态文件的位置,我在“lib”文件夹中有 spark 库。这些库包含在 jar 中: lib package in the jar
我的清单文件如下所示:
清单版本:1.0
类路径:lib/ *
主类:com.xx.xx.xx.Main
据我所知,这应该意味着 lib 中的所有库都包括在内,但是如果我使用简单的 java -jar test.jar 运行 jar,我会得到这个:
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: spark/Spark
at com.xx.xx.xx.Main.run(TundraWebApp.java:20)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: spark.Spark
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
spark/Spark 是其中一个库的一部分。
为什么没有检测到我的库?
【问题讨论】:
-
请分享您遇到异常的课程的完整代码,这将有助于其他人更好地了解您的案例并为您提供帮助。
标签: java intellij-idea classpath spark-java