导出Java Scala项目时,无法获取Scala/ScalaObject
我正在使用安装了Scala 2.9.3插件的eclipse。导出Java Scala项目时,无法获取Scala/ScalaObject,java,windows,scala,noclassdeffounderror,scala-ide,Java,Windows,Scala,Noclassdeffounderror,Scala Ide,我正在使用安装了Scala 2.9.3插件的eclipse。 我有一个Scala项目,它在eclipse中工作得很好,但是当我将该项目导出到“Runnable JAR文件”并尝试运行它时,我得到了以下异常: java.lang.NoClassDefFoundError: scala/ScalaObject 我尝试了所有3种库处理选项: 提取所需的库 包所需的库 复制所需的库 所有的结果都是相同的例外 为了从我的项目中创建一个独立的JAR文件,我需要做什么?我过去使用过插件,我发现它非常容易
我有一个Scala项目,它在eclipse中工作得很好,但是当我将该项目导出到“Runnable JAR文件”并尝试运行它时,我得到了以下异常:
java.lang.NoClassDefFoundError: scala/ScalaObject
我尝试了所有3种库处理选项:
- 提取所需的库
- 包所需的库
- 复制所需的库
为了从我的项目中创建一个独立的JAR文件,我需要做什么?我过去使用过插件,我发现它非常容易使用。如果您使用SBT来维护和构建项目,那么像
pedrofurla
建议您应该尝试使用插件。在最简单的情况下,只需将以下内容添加到项目构建中(我更喜欢build.scala
,但在*.sbt
中,它看起来是一样的):
1) 进口:
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文件,或调用publish将其发布到您的repo。这应该行得通你确定scala-library.jar是jar中的一个吗?@pedrofurla:我不确定如何检查它(Java世界中的新手)。但我想它存在于某个地方,因为它是从日食中跑出来的。我可能错过了一些东西,可能是因为我习惯了C、C++和C家族。但是,如果我不能使用Scala来制作在Eclipse之外运行的东西,除非我下载更多插件并手动更改构建定义,那么Scala有什么意义呢?我相信你可以,我只是不知道如何在Eclipse中组装项目,因为我正在使用IDEA和sbt插件。您构建/组装项目的方式与语言本身无关
lazy val publishingSettings = addArtifact(artifact in (Compile, assembly), assembly) ++ Seq(
publishTo := /* your repository settings */
)