导出Java Scala项目时,它无法获得scala / ScalaObject

时间:2013-07-21 14:51:10

标签: java windows scala noclassdeffounderror scala-ide

我正在安装Scala 2.9.3插件的eclipse 我有一个Scala项目,可以从eclipse中正常工作,但是当我将项目导出到“Runnable JAR File”并尝试运行它时,我得到以下异常:

java.lang.NoClassDefFoundError: scala/ScalaObject

我尝试了所有3个图书馆处理选项:

  • 提取所需的库...
  • 打包所需的库......
  • 复制所需的库......

所有人都以相同的例外结束。

为了从我的项目中创建一个独立的JAR文件,我需要做些什么?

2 个答案:

答案 0 :(得分:1)

我过去使用过sbt-assembly插件,我觉得它很容易使用。

答案 1 :(得分:1)

如果您使用SBT维护&建立你的项目,然后像pedrofurla建议你应该尝试sbt-assembly插件。在最简单的情况下,只需将以下内容添加到项目构建中(我更喜欢Build.scala,但在*.sbt中看起来相同):

1)进口:

import sbtassembly.Plugin._
import AssemblyKeys._

2)设置:

mainClass in assembly := Some("path.to.MainClass")
jarName   in assembly := "jar-name.jar"

3)如果你想发布工件:

artifact in (Compile, assembly) ~= { art =>
  art.copy(`classifier` = Some("assembly"))
} // add classifier

然后是您的发布任务:

lazy val publishingSettings = addArtifact(artifact in (Compile, assembly), assembly) ++ Seq(
    publishTo := /* your repository settings */
  )

调用assembly以获取一体化jar文件或发布以将其发布到您的回购。这应该工作