Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导出Java Scala项目时,无法获取Scala/ScalaObject_Java_Windows_Scala_Noclassdeffounderror_Scala Ide - Fatal编程技术网

导出Java Scala项目时,无法获取Scala/ScalaObject

导出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 2.9.3插件的eclipse。
我有一个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 */
  )