java - 如何在 Eclipse 中将 Scala 库打包成可运行的 jar

标签 java eclipse scala jar export

问题

我在使用 Scala 在 Eclipse 中创建可运行的 jar 文件时遇到了一些问题。

在 Eclipse 中,我有一个 Scala 项目,我希望将其制作成可运行的 jar 文件。当我运行 jar 文件时,它无法找到 Scala 标准库。

详细信息

IDE - 我正在使用Scala IDE用于扩展 Eclipse 以使用 Scala。

设置 - 要导出,请右键单击我的项目并向下导航“导出”>“可运行 Jar 文件”。我选择运行配置并设置桌面路径。我选择了“提取”库处理选项。我的运行配置是一个 Java 应用程序,其中选择了我的主类。我的主类是用 Java 编写的,而项目的其余部分是用 Scala 编写的。然后,我通过 Windows CMD 运行创建 jar 文件 java -jar myjarfile.jar .

错误 - 当我运行 jar 文件时 NoClassDefFoundError当程序第一次遇到 Scala 标准库类(在我的例子中为 scala.util.Random)时抛出。该程序可以正常运行我的 Scala 文件,甚至可以运行我在 Eclipse 下作为项目依赖项添加的另一个项目的文件。当我使用 scala myjarfile.jar 运行 jar 文件时它找不到主类。即使使用scala确实有效,但这是 Not Acceptable ,因为用户可能没有安装任何与 Scala 相关的东西。

我在 Stack Overflow 上研究过类似的问题,但没有一个有效。那么如何访问 jar 文件中的 Scala 标准库呢?将 Scala 标准库打包到我的 jar 中听起来是一个不错的选择,但我不知道如何做到这一点。

最佳答案

使用 SBT 为 Scala 打包可运行 jar 有 2 个选项:

  1. sbt-assembly将您的类文件打包为a fat jar,它还将打包 Scala 标准库。
  2. SBT Native Packager它可以将类文件打包为可运行的包,包括:ziptgzRPMDEPDocker

关于java - 如何在 Eclipse 中将 Scala 库打包成可运行的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069769/

相关文章:

scala - 这个流的类型是如何转换的?

java - 在java中使用正则表达式计算文件数量

java - 比较两个字符串,如果一个字符串包含另一个字符串的所有字符,则返回 true

android - 构建build.gradle文件后无法将Eclipse中的Android项目导入到Android Studio

java - 在eclipse中打开项目文件

java - 如何从现有的 Jar 和我自己的类中创建 Jar 文件?

java - SWT/Eclipse 3.x API 中的 SwingUtilities invokeLater 等价物?

java - 使用 OpenCV 将代码从 python 移植到 java

scala - 在 Akka 中直接使用 Futures

scala - 如何在 Spark 中以小块迭代大型 Cassandra 表