我有一个独立的 Java 应用程序。目前,我正在使用启动脚本运行此 Java 应用程序,即 Windows 中的 startApplicatoin.bat 和 Linux 中的 startApplicatoin.sh ,它设置类路径,然后执行: java -classpath 。
现在我必须添加一个 stopApplication.bat 和 stopApplication.sh 脚本。这个停止脚本必须优雅地关闭/关闭这个 java 应用程序。
为此,我计划采取以下步骤:
1.当我的java 应用程序运行时,它会将启动的应用程序的进程ID 存储在一个文件中,即在一个已知文件myapplication.pid 中。
看起来 ManagementFactory.getRuntimeMXBean().getName() 调用将在 Linux 和 Windows 上工作以获取进程 ID。所以我将通过这种方式收集进程ID并将其存储在指定文件myapplication.pid中。
2.然后在运行停止应用程序脚本时,此脚本将向 myapplication.pid 文件指定的进程 ID 发出“kill”请求。
对于 Windows,我将运行“taskkill”命令来停止这个应用程序。而对于 Linux 环境,“kill”命令将用于此目的。
在我的 java 代码中,我将添加一个 addShutdownHook,它将启用我想要运行的优雅关闭操作,即在该程序停止之前我将处理我想要保留的任何东西。
现在我想做一个健全性检查,以确保我的思维方式是正确的。或者有更好的方法来做到这一点。任何建议表示赞赏。并提前感谢。