我正在使用java Runtime.exec()方法执行bat文件,在bat文件中我已经编写了执行jar的代码。这个jar包含将无限时间池化为rabbitmq队列的线程类,如果找到消息则执行操作那意味着这个过程将无限运行。我想用java代码杀死这个进程,我也想知道这个方法能够在Linux Os上执行脚本。
**Used java code**
String myCMD = "cmd.exe /C start c:\\elasticmgmtservice.bat";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(myCMD);
**used batch file**
cd c:
cd ElasticMgmtService\
java -jar ElasticIndexManagementService.jar config\ElasticIndexManagementService.xml
请帮我解决问题。
答案 0 :(得分:2)
在Windows中
Runtime rt = Runtime.getRuntime();
rt.exec("taskkill " +<Your process>);
在Linux中
Runtime rt = Runtime.getRuntime();
rt.exec("kill -9 " +<Your process>);
答案 1 :(得分:2)
Runtime.exec(...)返回Process
对象,其中包含以下方法
你可以调用destroy()来杀死子进程。此Process对象表示的子进程被强制终止。
或者你可以通过在taskkill /PID <process id>
或Runtime.exec(...)
kill -9 <process id>
来杀人
答案 2 :(得分:0)
Runtime.exec()
返回一个Process对象,它是exec方法创建的进程的处理程序。要终止此过程,您必须致电Process.destroy();