我在使用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中听起来是个不错的选择,但我不知道如何做到这一点。
答案 0 :(得分:1)
使用SBT为Scala打包runnable jar有2个选项:
zip
,tgz
,RPM
,DEP
,Docker
。答案 1 :(得分:0)
创建一个纯Java项目并将main方法委托给核心Scala项目。将Scala标准库添加到Java项目(找到here)并导出它。它应该完美无缺。