如何在Eclipse

时间:2017-07-13 00:56:23

标签: java eclipse scala jar export

问题

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

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

详细

IDE - 我使用Scala IDE扩展Eclipse以进行Scala使用。

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

错误 - 当我运行jar文件时,当程序第一次遇到Scala标准库类(在我的情况下为NoClassDefFoundError)时,会抛出scala.util.Random。该程序运行我的Scala文件很好,甚至运行另一个项目的文件,我在Eclipse下添加为项目依赖项。当我用scala myjarfile.jar运行jar文件时,它无法找到主类。即使使用scala确实有效,也不可接受,因为用户可能没有安装任何与Scala相关的内容。

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

2 个答案:

答案 0 :(得分:1)

使用SBT为Scala打包runnable jar有2个选项:

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

答案 1 :(得分:0)

使用包装项目

创建一个纯Java项目并将main方法委托给核心Scala项目。将Scala标准库添加到Java项目(找到here)并导出它。它应该完美无缺。