我有一个java应用程序,我想以exe或dwg等格式发布,这样不同平台上的用户就可以双击它,让它开始运行。但为了让我的代码工作得很好,我需要它作为windows服务工作,无论其他操作系统中的等价物是什么。使用Java web start不是一个解决方案,因为据我所知,如果客户端机器关闭,那么用户将不得不再次双击可执行文件。我已经尝试过java服务包装器,但我不知道如何使其可发布。
感谢Pranabesh
发布于 2009-08-13 05:50:07
如果商业工具对你来说是可以接受的,我会推荐install4j。它可以为最常见的平台生成安装程序,这些安装程序特别支持将应用程序作为服务安装。
来自其Features page的报价
install4j完全支持生成和安装服务(守护程序)。对于服务,install4j在Windows上生成服务可执行文件,在Mac上生成启动项目,在Unix/Linux平台上生成启动/停止脚本。
发布于 2009-08-13 04:54:56
Java服务包装器是一种适用于Windows/Unix/OSX的方法。我已经使用它好几年了,没有任何问题。这是一个很棒的软件,可以很好地处理JVM崩溃/挂起,如果发生了什么不好的事情,它会自动重启服务。
关于应用程序的发行版,我建议在Windows上使用NSIS。它可以创建一个不错的安装程序,将文件放在需要的地方,并运行JSW存根在目标系统上安装服务。对于Unix,您只需将其打包到tar.gz中,并提供有关如何安装该服务的说明(将sh脚本复制到/etc/init.d中,使用chkconfig或任何其他用于管理启动脚本的系统相关工具来安装它)。在Mac上,你应该把它打包成dmg。
如果你想要一个跨平台的解决方案,你也可以试试izpack。windows可以从java web开始运行,作为原生的windows应用程序或mac应用程序,查看utilities page。
IzPack是打包、分发和部署应用程序的一站式解决方案。它完全是跨平台的,并且生成一个单独的安装程序。因此,它是本机解决方案的替代方案,例如特定于平台的安装程序和包管理器。IzPack生成的安装程序只需要Java虚拟机即可运行。
发布于 2009-08-13 04:41:39
您需要为要发布的每个操作系统构建一个发布包。
例如,对于Windows,您需要找到一个可执行的包装器。我已经有一段时间没有这样做了,但我记得我签了几个实际上会构建一个安装程序作为过程的一部分。
Launch4j是我刚刚想起的一个
https://stackoverflow.com/questions/1270049
复制相似问题