在不同的操作系统上发布java应用程序

时间:2009-08-13 04:38:22

标签: java service software-distribution

我有一个java应用程序,我想作为exe或dwg等发布,以便不同平台上的用户可以双击它并让它开始运行。   但是为了让我的代码能够很好地工作,我需要它作为一个Windows服务工作,而在其他操作系统中,无论如何都是如此。   使用Java Web Start不是一个解决方案,因为据我所知,如果客户端机器关闭,那么用户将不得不再次双击exe。   我已经尝试了java服务包装器,但我看不出如何使它可以发布。

由于 Pranabesh

4 个答案:

答案 0 :(得分:2)

如果您可以使用商业工具,我建议install4j。它可以为最常见的平面形式生成安装程序,特别支持将应用程序作为服务进行安装。

引用他们的Features page

  

install4j提供对生成和安装服务(守护进程)的完全支持。对于服务,install4j在Windows上生成服务可执行文件,在Mac OS X上生成启动项,在Unix / Linux平台上生成/停止脚本。

答案 1 :(得分:1)

Java Service Wrapper是Windows / Unix / OSX的一种方式。多年来我一直在使用它没有任何问题。它是一个很棒的软件,可以处理JVM崩溃/挂起,如果出现问题,可以自动重启服务。

关于应用程序的分发有什么问题,我建议在Windows上使用NSIS。它可以创建一个很好的安装程序,将文件放在必要的位置并运行JSW存根以在目标系统上安装服务。对于Unix,您可以将其打包到tar.gz中,并提供有关如何安装服务的说明(将sh脚本复制到/etc/init.d,使用chkconfig或任何其他系统相关工具安装它来管理启动脚本)。在Mac上,你应该将它打包成dmg。

如果您想要更多跨平台解决方案,也可以尝试izpack。 izpack可以从java web start运行,作为本机Windows应用程序或mac应用程序,检查utilities page

  

IzPack是一个包装,分发和部署应用程序的一站式解决方案。   它完全跨平台并生成单个安装程序。因此,它是本机解决方案的替代方案,例如特定于平台的安装程序和程序包管理器。   IzPack生成的安装程序只需要运行Java虚拟机。

答案 2 :(得分:0)

您需要为要发布的每个操作系统构建一个发行包。

对于Windows,例如,您需要找到一个可执行的包装器。我已经做了一段时间了,但是我记得有一些人会在安装过程中构建一个安装程序。

Launch4j是我刚才记得的那个

答案 3 :(得分:0)