29

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

1) exe 包装器:jsmooth - 2.5 年内无新开发 - 不支持 64 位。launch4j - 一年多没有新开发,支持64位,但是不能签名launch4j创建的exe,所以我更喜欢jsmooth,但不支持64位。

2)onejar:可以,但是2.5年多没有新的开发或网站更新。因此,如果它突然与新的 Java 版本中断,只想切换到受支持的东西/有一个备份计划。

谢谢埃德加

4

9 回答 9

15

Launch4j 刚刚更新!http://launch4j.sourceforge.net/changelog.html

于 2011-04-07T07:02:04.193 回答
8

你检查过 IzPack吗?这是创建跨平台安装程序的好软件:

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

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

于 2009-12-28T00:42:55.470 回答
8

由于没有一个答案被批准,并且上面没有提到 JavaFX 2.2(在答案时不可用),这里是:

JavaFX 2.2(自 7u6 起是 Java 运行时和 SDK 的一部分)也允许构建本机 exe/dmg/rpm 的标记以及完整的 RT 组件。我相信这是对您需求的有效回答,也是 Oracle 官方支持的解决方案。

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

于 2012-11-01T11:31:46.217 回答
2

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

于 2009-12-28T00:40:37.583 回答
2

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

它比 akauppi 的建议走得更远,因为它甚至允许在 Mac 和 Windows 下创建 GNU Linux 包 :) 我也用它在 GNU Linux 下创建 Mac 包。目前,它只是一个带有一些依赖项的 Ant 库,允许为 GNU Linux、Mac OS X 和 Windows 创建本地自包含应用程序包。我将它用于我的第一人称射击游戏,我对此非常满意。它捆绑了 JRE,但如果您愿意,它可以使用系统 JRE。

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

我了解 GPL 许可不鼓励一些开发人员使用我的工具。在这种情况下,宁可使用PackR

于 2015-01-11T10:41:22.983 回答
2

你可以试试

http://winrun4j.sourceforge.net/

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

于 2011-09-01T08:21:49.360 回答
1

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

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

于 2009-12-28T00:43:32.297 回答
1

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

是的,NSIS 是一个安装程序,但您可以通过剥离所有安装程序的内容,让它在同一目录中运行一个 jar。基本上它像launch4j一样工作,但可配置性更高。

于 2011-03-23T23:10:35.047 回答
1

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

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

于 2019-02-08T00:34:14.957 回答