我有一个控制台Java应用程序,它一直在远程服务器上运行(nohup java -jar myapp.jar&)。
经常(每隔一天)我需要用更新的JAR文件替换它(每当我修复缺陷时)。
目前我通过使用ssh(WinSCP)连接到服务器来执行此操作。
如何创建一种机制,使用它可以通过http协议升级应用程序?我可以使用JMX吗?
该机制应该做以下事情:
a)停止当前正在运行的应用程序。
b)将新的JAR文件上传到服务器。
c)启动新的JAR文件。
答案 0 :(得分:2)
基本上你需要将程序分解为两部分:
取出新jar的monitor
组件,停止程序,替换jar,重新启动程序
实际程序,控制台java应用程序
从理论上讲,你可以在一个java进程中完成所有这些工作,但在我看来,额外的复杂性并不值得。
答案 1 :(得分:0)
答案 2 :(得分:0)
在LiveRebel中,there's native support表示独立应用程序(即守护进程)。因此,主应用程序与监视程序代理一起运行,该程序与代理中心进行通信。从命令中心可以管理更新。