首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目编译但无法运行,NoClassDefFoundError

项目编译但无法运行,NoClassDefFoundError
EN

Stack Overflow用户
提问于 2017-10-15 07:07:55
回答 1查看 342关注 0票数 0

我真正想要的是链接到外部本地库,但不希望将它们包含到最终的jar中。

在build.sbt中

代码语言:javascript
复制
unmanagedClasspath in Compile ++= (file("/usr/local/lib/spark/jars") ** "*.jar").classpath

show compile:compile::unmanagedClasspath的结果与show compile:run::unmanagedClasspath的结果相同

代码语言:javascript
复制
[info] * Attributed(/usr/local/lib/spark/jars/ivy-2.4.0.jar)
[info] * Attributed(/usr/local/lib/spark/jars/spark-core_2.11-2.2.0.jar)
[info] * Attributed(/usr/local/lib/spark/jars/spire_2.11-0.13.0.jar)
[info] * Attributed(/usr/local/lib/spark/jars/javax.inject-1.jar)
[info] * Attributed(/usr/local/lib/spark/jars/protobuf-java-2.5.0.jar)
[info] * Attributed(/usr/local/lib/spark/jars/parquet-encoding-1.8.2.jar)
and many other...

compile运行良好,但run显示了此错误

代码语言:javascript
复制
[info] Packaging /home/tansei/research/aclimdb/target/scala-2.12/aclimdb_2.12-0.1.0-SNAPSHOT.jar ...
[info] Done packaging.
[info] Running (fork) aclimdb.MyLogisticRegression 
[error] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$
[error]     at aclimdb.MyLogisticRegression$.main(MyLogisticRegression.scala:8)
[error]     at aclimdb.MyLogisticRegression.main(MyLogisticRegression.scala)
[error] Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error]     ... 2 more
[error] java.lang.RuntimeException: Nonzero exit code returned from runner: 1
[error]     at sbt.ForkRun.processExitCode$1(Run.scala:29)
[error]     at sbt.ForkRun.run(Run.scala:38)
[error]     at sbt.Defaults$.$anonfun$bgRunTask$5(Defaults.scala:1152)
[error]     at sbt.Defaults$.$anonfun$bgRunTask$5$adapted(Defaults.scala:1147)
[error]     at sbt.internal.BackgroundThreadPool.$anonfun$run$1(DefaultBackgroundJobService.scala:359)
[error]     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error]     at scala.util.Try$.apply(Try.scala:209)
[error]     at sbt.internal.BackgroundThreadPool$BackgroundRunnable.run(DefaultBackgroundJobService.scala:282)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error]     at java.lang.Thread.run(Thread.java:745)
[error] (compile:run) Nonzero exit code returned from runner: 1
[error] Total time: 2 s, completed Oct 15, 2017 4:05:34 PM

我问这个问题可能看上去很傻,但这花了我好几个小时,我不能接受这个问题。非常感谢你在这方面的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-15 07:14:49

噢,在我再添加一行之后,run命令运行得很好

代码语言:javascript
复制
  unmanagedClasspath in Compile ++= (file("/usr/local/lib/spark/jars") ** "*.jar").classpath,
  unmanagedClasspath in Runtime ++= (file("/usr/local/lib/spark/jars") ** "*.jar").classpath
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46752576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档