假设我有一个打包在可执行 jar 中的 java 程序,我通常使用 java -jar myappjar.jar 从命令行启动。现在我想开发远程管理应用程序来启动这个java程序,并且一旦启动我希望能够停止它,我的意思是它必须在我的程序中调用一个方法shutdown,这将完成清理工作并退出程序。
此外,当我启动远程管理应用程序本身时,它应该告诉我我要启动的程序是否已经在运行,如果是,则先停止它。
以上所有可能以及如何实现?尤其是最重要的是能够启动尚未运行的程序。
我启动的程序是一个服务器,它会一直运行直到手动或通过远程管理应用程序关闭。此服务器绝不应依赖 JMX 代理或远程管理应用程序,即远程管理应用程序/JMX 代理可以关闭,服务器程序仍继续运行,或者服务器可以手动启动,稍后可以启动远程管理应用程序来检测此服务器程序,如果如此渴望。