[英]Java - NoClassDefFound error with specified classpath
当我尝试运行jar应用程序时,即使我在类路径中引用了包含类的库,也遇到了NoClassDefFoundError。
这是导致它的行(在线程的start方法中):
Spark.staticFiles.location("/public");
这定义了Java Spark框架的静态文件的位置,并且我在“ lib”文件夹中有spark库。 这些库包含在jar中:jar中的lib包
我的清单文件如下所示:
清单版本: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是其中一个库的一部分。
为什么未检测到我的库?
我不认为Class-Path
支持通配符。 您必须拼出jar名称,例如:
Class-Path: libs/spark-core_2.11-2.3.0.jar libs/spark-sql_2.11-2.3.0.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.