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