我想通过其进程ID停止Tomcat进程。如何使用Java获取Tomcat进程ID?
答案 0 :(得分:2)
我不确定这对Windows案例是否有帮助,但可以告诉您可以在Linux / UNIX上使用的catalina.sh
脚本将进程的PID存储在文件中。您只需将CATALINA_PID
环境变量设置为PID文件的路径名即可。完成此操作后,运行catalina.sh stop -force
将尝试干净关闭,如果失败,将kill
Tomcat进程。
答案 1 :(得分:1)
没有直接的方式来访问我所知道的PID,但是,有人写了一篇关于如何间接执行此操作的精彩博客。这是他的5个不同选项的链接。
http://blog.igorminar.com/2007/03/how-java-application-can-discover-its.html
最好的选择就是这个......
使用java管理和 监控API(java.lang.management):
ManagementFactory.getRuntimeMXBean().getName();
返回类似的内容: 28906 @ localhost其中28906是PID JVM的进程,实际上是 我的应用程序的PID。
这个hack依赖于JVM而且我 仅使用Sun的JVM测试它。
从Javadocs获取getName()方法 RuntimeMXBean:返回名称 表示正在运行的Java虚拟 机。返回的名称字符串可以 是任意字符串和Java 虚拟机实现可以 选择嵌入特定于平台 返回的有用信息 名字串。每个运行虚拟 机器可能有不同的名称。
答案 2 :(得分:0)
您可以在java中执行TASKLIST.EXE并获取结果。我发现有趣的第二个选项是从java运行Service stop命令。
希望它有所帮助。