Java打包工具 - jsmooth,launch4j,onejar的替代品

时间:2009-12-28 00:35:48

标签: java launch4j

我已经使用这三个开源工具来打包我的java应用程序,但它们现在看起来都像放弃了。这三个都是非常好的软件。现在有哪些选择? (或者使用Java进行桌面应用程序开发不再是应用程序开发人员构建和维护这些工具的“热门”市场吗?)。

1)exe包装器: jsmooth - 2。5年内没有新的发展 - 不支持64位。 launch4j - 一年多没有新的开发,支持64位,但你不能签署launch4j创建的exe,所以我更喜欢jsmooth,但它不支持64位。

2)onejar: 它有效,但在超过2。5年内没有新的开发或网站更新。所以,如果突然中断了新的Java版本,只想切换到支持/有备份计划的东西。

由于 埃德加

9 个答案:

答案 0 :(得分:15)

答案 1 :(得分:7)

您检查过IzPack了吗?这是创建跨平台安装程序的绝佳软件:

  

IzPack是Java平台的安装程序生成器。它生成轻量级安装程序,可以在Java虚拟机可用的任何操作系统上运行。根据操作系统的不同,可以通过双击或在shell上使用简单的“java -jar installer.jar”来启动它。最常见的用途是为Java平台分发应用程序,但您也可以将其用于其他类型的项目。 IzPack的主要优点是它提供了一种清晰而独特的方式,可以将项目分发给使用不同操作系统的用户。

一些非常着名的公司和项目使用它多年(Sun Microsystems,JBoss / RedHat,Scala语言项目,一些ObjectWeb / OW2项目,XWiki等等)。如果这对他们有好处,那对你有好处:)

答案 2 :(得分:7)

由于没有一个答案获得批准,并且上面没有提到JavaFX 2.2(在答案时没有提供),这里有:

JavaFX 2.2(自7u6以来的Java Runtime和SDK的一部分)允许在整个RT组件中构建标记本机的exe / dmg / rpm。我相信这是对您的需求的有效解决方案,也是Oracle正式支持的解决方案。

https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

答案 3 :(得分:2)

您是否尝试过IzPack(http://izpack.org /)?

答案 4 :(得分:2)

你可以尝试

http://winrun4j.sourceforge.net/

有一个支持64位的exe,并且使用ini文件很容易配置。

答案 5 :(得分:1)

Maven 2提供了创建jar的能力,该jar包含作为其程序集插件的一部分的所有依赖项。这与清单文件的jar插件配置相结合(特别是将Main-class设置为带有main的Class)是您进行基本打包所需的全部内容。

在某种程度上,Java Web start现在被认为是分发Java应用程序的更好方式,Maven 2的组装功能与Web start相结合,无需通过exe路径即可获得所需的一切。

答案 6 :(得分:1)

如果您只想要一个exe(而不是一个完整的安装程序),您可以使用NSIS制作一个: http://nsis.sourceforge.net/Java_Launcher_with_automatic_JRE_installation

是的,NSIS是一个安装程序,但是您可以通过剥离所有安装程序的东西来在同一目录中运行jar。基本上它就像launch4j一样,但是可以配置得更多。

答案 7 :(得分:1)

由于我厌倦了Java Webstart中最近的安全性更改,我创建了自己的工具JNDT。这是在GPL下。

它比akauppi的建议更远,因为它允许甚至在Mac和Windows下创建GNU Linux包:)我也用它在GNU Linux下创建Mac包。目前,它只是一个具有一些依赖关系的Ant库,允许为GNU Linux,Mac OS X和Windows创建本机自包含应用程序包。我用它作为我的第一人称射手,我对它非常满意。它捆绑了JRE,但如果你愿意,它可以使用系统JRE。

P.S:即使在GNU Linux下,JNDT也可以使用NSIS创建本机Windows安装程序作为可执行文件。

据我所知,GPL许可证不鼓励某些开发人员使用我的工具。在这种情况下,请使用PackR

答案 8 :(得分:0)

如果您正在使用gradle,则有一个插件可以使用launch4j(在幕后)并且效果很好。它甚至不需要您下载或安装launch4j,它是完全自动化的。

https://github.com/TheBoegl/gradle-launch4j