多平台应用程序启动器

6
有没有一种应用程序可以创建Java应用程序的本地应用程序启动器?所谓“本地”是指“看起来像普通的、依赖于平台的应用程序,只会启动java -jar foobar.jar,并在没有JVM安装时显示错误”。我听说过Launch4j,但它只适用于Windows。我想要一个多平台(Win+Lin+Mac)的解决方案,并且我不想谈论shell脚本;我想要正常的可执行文件。
顺便说一句,Eclipse似乎有我想要的东西。
此致敬礼。

对于一个超过200MB的应用程序?:P 而且.jnlp看起来不像本地应用程序。 - m4tx
2
针对一个超过200MB的应用程序,它只需要下载一次 - 无论您使用什么启动器,它都必须被下载。jnlp看起来不像本地应用程序,启动过程不是本地的。 - assylias
2
@m4tx 应用程序将如何交付给最终用户?CD/DVD、USB驱动器、Wi-Fi或者IPoAC - Andrew Thompson
@AndrewThompson +1 我不知道IPoAC - 下一个项目一定会尝试一下!!! - assylias
@assylias 我不想让用户在启动我的应用程序时需要互联网连接。最近我在启动SwingX演示(它是.jnlp文件)时没有临时的互联网连接,尽管我之前已经下载了它,但我无法启动它。这真的很烦人。 - m4tx
显示剩余2条评论
4个回答

3
如果您正在使用Maven,则可以非常容易地为所有平台创建本机应用程序,我们使用Launch4j来为Windows(.exe)创建应用程序,对于Debian(.deb),我们使用Jdeb,而对于Mac OSX(.app和.dmg),我们使用Osxappbundle。

哦,很酷,但是……那么通用的(不仅限于Debian的)Linux启动器呢? :) - m4tx
对于非Debian系统,您可以使用rpm-maven-plugin创建RPM软件包... - twid
1
嗯... RPMs仍然不是通用的启动器;p 所谓的“通用”是指普通的ELF启动器。但Maven对我来说真的很好看... - m4tx
您可以使用Ant或Maven与Redline RPM Library一起创建RPMs。同时也可以看看LibGDX Packr(用于本地启动器)。 - gouessej

2
有一些工具可以实现这个功能,比如launch4j。您可以与izPack一起使用,以提供本地安装程序和启动器。有关详细信息,请参见此处

我说过我不想使用launch4j,因为它只能在Windows上运行 :) - m4tx
@m4tx,你说的是Java4jLaunch4j也可以在Linux和MacOS上运行。 - Baz
Launch4j可以将Java JAR文件转换为Windows本地可执行程序,并允许像普通Windows程序一样运行它们。它支持在Windows、Linux、Mac OS X和Solaris上进行应用程序封装! - Dan D.
1
据我所知,"可以在Windows、Linux、Mac OS X和Solaris上包装应用程序!" 的意思是我只能在Windows、Linux、OS X或Solaris上创建Windows的启动器 :) - m4tx
我认为Windows是主要的目标平台。 - Dan D.
显示剩余3条评论

2
我使用LibGDX Packr,但它使用你所打包应用程序的JVM而不是操作系统上安装的JVM。因为我喜欢提供真正的GNU Linux软件包,所以我使用JDebRedline RPM。我将不得不找到一个解决方案来创建Windows的MSI软件包。

这些工具是跨平台的,这意味着你不必在Mac OS X下创建一个.app文件,也不必在Windows下创建带有本机Windows启动器的压缩文件,也不必在GNU Linux下创建GNU Linux软件包。

我使用Ant作为构建工具,但你也可以用Maven来做同样的事情。JDebRedline RPM都支持它,为LibGDX Packr编写一个Ant任务非常容易。当我成功地使用JDebRedline RPM时,我仍然犹豫是否将我的高级部署工具放入单独的库中。我想使用一种同质的语法,以便开发人员可以使用相同的参数创建所有本地软件包。此外,我的代码会为您创建.icns文件,这在您不想依赖于本机Mac OS X工具或任何外部应用程序时非常有帮助,它基于我对Apache Commons Imaging的补丁。
附言:我几个月前将我的自己的工具(JNDT)放入了一个单独的Ant脚本中,它的文档在这里

0

我发现install4j对于多平台应用程序绑定非常有用。它易于使用,界面美观。

它支持Windows + Linux + MacOSX + Unix
它还可以绑定JRE,这样即使用户没有安装任何JRE也可以运行它。


它对Linux和Unix的支持很差,许多打包选项根本不起作用(多架构、版本等),它有许多限制,而且不是免费的,与竞争解决方案相比,它提供的东西并不多。此外,许多工具允许捆绑JRE,不仅限于install4j。 - gouessej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接