1

我正在编写一个 Java 服务器端应用程序,我想提供内置功能,以便苹果可以自行更新。我希望应用程序轮询服务器,如果有可以更新到的新版本,那么它应该让用户激活更新命令。

我希望在此更新期间发生以下情况:

  • 下载新版本的新 JAR 文件
  • 将该 JAR 的内容重新加载到主应用程序中
  • 从旧 JAR 中卸载任何旧类

理想情况下,我希望这种情况发生,而在此过程中不会更改应用程序 PID。

我相信詹金斯确实做到了这一点,但我无法弄清楚他们是如何做到的。

4

1 回答 1

0

卸载/加载技术是部署到应用程序容器中的 Java EE 应用程序的标准配置,您可以免费获得。

唯一的问题是如何以编程方式管理更新。它必然是特定于容器的。如果您不部署到 Java EE 容器,则必须深入研究自定义类加载器的血腥细节。但这只是一个开始,因为它不仅仅是卸载类。例如,您的应用程序可能已经启动了需要正常关闭的线程,或者打开了套接字等。

于 2012-05-13T11:20:55.153 回答