我有一个 java 应用程序,我想将它作为 exe 或 dwg 等发布,以便不同平台上的用户可以双击它并让它开始运行。但是为了让我的代码能够很好地工作,我需要它作为 Windows 服务工作,以及其他操作系统中的任何等价物。使用 Java web start 不是一个解决方案,因为据我了解,如果客户端机器关闭,那么用户将不得不再次双击该 exe。我已经尝试过 java 服务包装器,但我看不到如何使其可发布。
谢谢普拉纳贝什
我有一个 java 应用程序,我想将它作为 exe 或 dwg 等发布,以便不同平台上的用户可以双击它并让它开始运行。但是为了让我的代码能够很好地工作,我需要它作为 Windows 服务工作,以及其他操作系统中的任何等价物。使用 Java web start 不是一个解决方案,因为据我了解,如果客户端机器关闭,那么用户将不得不再次双击该 exe。我已经尝试过 java 服务包装器,但我看不到如何使其可发布。
谢谢普拉纳贝什
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 应用程序,查看实用程序页面。
IzPack 是打包、分发和部署应用程序的一站式解决方案。它是完全跨平台的并生成一个安装程序。因此,它是原生解决方案(例如特定于平台的安装程序和包管理器)的替代方案。IzPack 生成的安装程序只需要 Java 虚拟机即可运行。
您需要为要发布的每个操作系统构建一个发布包。
例如,对于 Windows,您将需要找到一个可执行包装器。自从我这样做以来已经有一段时间了,但我记得使用了一对实际上将构建安装程序作为过程的一部分的夫妇。
Launch4j 是我刚刚记得的一个