如何打包Java桌面应用程序?

我正在研究一个简单的桌面java应用程序。 我想尽可能无缝地为最终用户安装。 例如,类似于Minecraft的分布方式 – OS X的简单可执行文件和Windows的EXE文件。

我应该使用什么工具?

啊哈! 我也有这个问题。 Java应用程序的用户必须安装JRE才能运行它。
您可以告诉他们首先安装Java,或者像处理一样在您的应用程序中分发JRE
但请注意,如果包含JRE,则打包的程序会很重。 而且,如果您想这样做,用户将需要为他们的平台下载适当的包。

可执行的Java Wrappers

它们将您的Java应用程序作为输入并将它们包装在可执行文件中(对于指定的平台)。 您可以根据需要自定义它们; 如果用户未安装Java,则会打开下载页面。

一些例子是Launch4J , JSmooth和Jar2EXE 。

安装程序

它们是独立的应用程序,配置为应用程序文件复制到用户的计算机,并(可选)创建快捷方式。

有些安装程序是用Java编写的,所以它们是多平台的。 在这种情况下,安装程序是.jar
其他一些是依赖于平台的,但您的优势在于您不需要包装它们。

Java安装程序: IzPack , Packlet , PackJacket , Antigen ,…

Java Web Start

它是一种Javafunction,允许用户轻松运行您的应用程序。 你给他们一个.jnpl文件,
他们打开它,Java下载最新版本的应用程序并运行它。 没有包装麻烦!


请在此处查看完整的资源列表。

Java Web Start我认为是您正在寻找的选项……

跨平台应用程序的最佳安装。 使用GUI可以在Java Web Start中找到。 部分引用链接文档:

JWS提供了许多吸引人的function,包括但不限于启动画面, 桌面集成,文件关联,自动更新等。

其他事项

.. OS特定的启动软件的方式。

将快捷方式(带图标)添加到桌面或启动/程序菜单(桌面集成)就像您可以获得的平台一样。

..将在没有Java的情况下运行,并提供安装JRE(如果当前不存在)

使用deployJava.js ,链接在“另请参阅:”下的第二个最后一个列表项中。

如果JWS集成并且看起来像本机程序,那么每个操作系统不需要单独的程序包。

使用原生PLAF将是一个良好的开端。

你在寻找这样的东西:

http://www.regexlab.com/en/jar2exe/

这允许最终用户在不安装的情况下运行.exe。

有许多选项 – Java Web Start,第三方安装程序等。

请查看http://mindprod.com/jgloss/installer.html以获取解释。

我想你正在寻找IzPak 。 甚至还有一个名为PackJacket的GUI