如何使用java关闭运行进程?

Sam*_*hra 8 java

我正在使用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
Run Code Online (Sandbox Code Playgroud)

请帮我解决问题.

Sub*_*der 3

Runtime.exec(...) 返回Process包含以下方法的对象

  • 破坏()
  • 退出值()
  • 获取错误流()
  • 获取输入流()
  • 获取输出流()
  • 等待()

您可以调用 destroy() 来杀死子进程。此 Process 对象表示的子进程被强制终止。或者你可以通过taskkill /PID <process id>传入Runtime.exec(...)或kill -9 <process id>

  • 我尝试过 destroy() 方法,但它不会关闭命令提示符(进程)。String myCMD = "cmd.exe /C start c:\\elasticmgmtservice.bat"; 运行时 rt = Runtime.getRuntime(); 进程 proc = rt.exec(myCMD); proc.destroy(); (2认同)