当前位置: 首页 > 知识库问答 >
问题:

如何在Eclipse中将Scala库打包到可运行的jar中

全彬
2023-03-14

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

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

IDE-我正在使用Scala IDE扩展Eclipse以适应Scala的使用。

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

错误-当我运行jar文件时,当程序第一次遇到Scala标准库类(在我的示例中为Scala.util.random)时,会抛出NoClassDefoundError。该程序可以很好地运行我的Scala文件,甚至可以运行我在Eclipse下作为项目依赖项添加的另一个项目的文件。当我使用scala myjarfile.jar运行jar文件时,它找不到主类。即使使用Scala有效,也是不可接受的,因为用户可能没有安装任何相关的Scala。

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

共有1个答案

苏麒
2023-03-14

使用SBT封装Scala的可运行jar有两个选项:

  1. sbt-Assembly将类文件打包为fat jar,它还将打包Scala标准库。
  2. SBT本机打包器它可以将类文件打包到可运行的包,包括:ziptgzrpmdepdocker
 类似资料:
  • 我已经尝试了很多方法,并遵循了几个在线说明,比如这个-Eclipse导出的Runnable JAR不显示图像,但到目前为止,没有成功。 我有一个非常简单的程序,读取一个文本文件(test.txt),并将其内容打印到标准输出。我正在使用Eclipse。这是我所做的- 我将文本文件放入名为“资源”的文件夹中 任何帮助都将不胜感激。 附录:这是代码。 }

  • 我需要从eclipse IDE导出一个可运行的jar。我给出的启动配置有库jar中的main类。 在eclipse中,我可以运行该程序。但我想将项目导出为可运行的JAR。但收到错误“无法从启动配置中找到main method”。 如何从库jar导出具有main方法的jar? 注意:如果我用其他类导出jar,并将主类名更改为库jar中存在的类名,那么它就可以工作。

  • 问题内容: 如何在Eclipse中将源链接到jar包? 我正在尝试添加外部库。 我将jar文件添加到了构建路径,但是当我尝试运行该应用程序时,它返回了以下错误: jar文件ch.ntb.usb没有源附件。 我已经使用JD-GUI来反编译jar文件,并且包含了源代码。 问题答案: 解压缩jar文件后,我将带有jd-gui的所有资源“ ch.ntb.usb.src”保存到了我的构建路径中。然后,将外部

  • 问题内容: 我有一个旧的J2EE应用程序(J2EE 1.3),该应用程序打包到EAR中,并且在EAR中有WAR和EJB JAR。现在,其中一个EJB JAR需要引用一些第三方库JAR,那么打包那些JAR的最佳位置是什么?如何打包? 问题答案: 它们放在耳朵文件的根目录中,或者您可以创建一个 lib 目录来存储它们。任何需要引用它们的项目(EJB或WAR)都必须将它们包括在清单文件的 Class-P

  • 所以,我已经在互联网上阅读了如何将我的项目提取到一个可运行的Jar文件。 我可以很好地提取它们,但当我尝试运行它时,它什么也不做。 当我在命令提示符下用 它所指向的特定行是: 它正在产生一个空指针异常。当我在eclipse中运行我的项目时,它就很好了。 当我将它导出到一个jar时,它得到一个NPE,我相信这是由于它找不到文件造成的。 以下是我的项目工作区: http://imgur.com/034