在Eclipse中从Scala Swing项目创建可运行的Jar文件

在Eclipse中从Scala Swing项目创建可运行的Jar文件,eclipse,scala,Eclipse,Scala,我用Scala中的Swing创建了一个简单的GUI应用程序,Eclipse中的“作为Scala应用程序运行”运行良好。我使用SBT作为构建工具,为应用程序逻辑创建了一些类文件,并在一个与对象同名的文件中创建了一个singleton对象,该对象使用main()方法启动应用程序 正如我所说,简单地从eclipse内部开始是可行的。但是生成JAR文件不是(导出->…)。有没有一个简单的方法可以做到这一点 由于我有最新的稳定scala版本,internetz的许多提示似乎已经过时。甚至是这个博客的最后一

我用Scala中的Swing创建了一个简单的GUI应用程序,Eclipse中的“作为Scala应用程序运行”运行良好。我使用SBT作为构建工具,为应用程序逻辑创建了一些类文件,并在一个与对象同名的文件中创建了一个singleton对象,该对象使用main()方法启动应用程序

正如我所说,简单地从eclipse内部开始是可行的。但是生成JAR文件不是(导出->…)。有没有一个简单的方法可以做到这一点

由于我有最新的稳定scala版本,internetz的许多提示似乎已经过时。甚至是这个博客的最后一条评论

不起作用。我只想要一个独立的可执行JAR文件,我可以在没有技术知识的情况下与他人共享。。。有什么想法吗


编辑:我终于解决了这个问题。问题是Eclipse在构建路径上显示了Scala库,但没有真正导出它们。可能是个虫子,我不知道。最后,我将scala-library.jar和scala-swing.jar作为外部jar直接添加到构建路径中,忽略了eclipse将它们显示为已包含的事实->一切正常。

看一下缩写onejar SBT插件:。它看起来很简单,并且有很好的描述。

我找到了解决方案,请参见问题中的编辑。我将很快处理可能的替代方案,但是eclipse相关的东西现在对我来说很有用。也许Scala IDE的人可以看看Eclipse中Scala应用程序的包装,但仍有一些困难需要解决。:)

你收到错误信息了吗?哪个?如果没有,到底出了什么问题?独立意味着什么?可以使用
scala yourJar.jar
java yourJar.jar
运行吗?好的,我有一个java Starter类,与上面发布的链接的最后一个注释中的完全相同。Export->Runnable Jar工作,它生成一个.Jar文件。双击:什么也没发生。从java-jar:InvocationTargetException开始,似乎找不到scala对象。用scala命令启动.jar是可行的。我仔细检查了我的构建路径:Scala Librarie(2.9.2)位于构建路径中。有什么想法吗?它应该在随机用户双击它时运行,他应该只需要一个java运行时。这种风格不错,因为其他有类似问题的用户可能会发现您的问题,并想知道是否有一个可接受的答案。只要你不带着这种回答模式提出问题,这绝对没问题——不仅如此,这是需要的行为。是的,这就是我自我回答的原因。不幸的是,我不得不等待几个小时,直到我能接受我的答案:)看起来很有趣,但正如我在这里的另一篇评论中所写的,我真的在寻找一个解决方案来从eclipse中实现它。我不是eclipse build jar工具的大量用户,但我想它从来不会将外来的罐子打包到您的罐子中。很多jar都是在应用程序之间共享的,你不想更新它们20次,也不想继续使用不推荐的jar。我认为这是eclipse Scala IDE插件用户的一个话题:)说真的,我必须将Scala库打包到jar中才能让其他用户使用,我个人认为没有选择(或者我没有得到什么?).也许构建一个优化的安装程序来下载最新的库等等…但在我的情况下,这似乎有些过头了。我不这么认为。你通常为自己制作的东西构建一个jar,而不是为第三方lib。当你为Java制作一个jar时,你不会将jre/lib/rt.jar添加到你自己的jar中,而是希望它在ta上rget机器。你也不添加commons.jar(apache),但希望客户端自己组织它。我大体上同意,但由于普通用户没有安装scala libs,我必须在我的应用程序中发布它,对吗?目标是一个nobrainer只需点击它程序:)所以,要完成这里的扩展讨论:我完全理解这个问题,但由于目前我还不知道更好的解决方案,所以我会让这里的一切保持原样。它有缺点,但是:因为我知道它是有效的。我会在找到更好的方法后更新,好吗?