我知道如何使用java代码启动批处理文件。 当我运行批处理文件时,命令提示符被打开。 要关闭命令提示符,我使用的是taskill / im cmd.exe。 但问题是用于启动jboss的命令提示符也已关闭。 我想杀死具有特定进程ID的cmd。 我如何获取特定cmd promt的进程ID并使用java
终止它答案 0 :(得分:3)
使用cmd.exe /c job.bat
运行批处理文件。 /c
开关执行命令,然后终止命令解释器。
答案 1 :(得分:3)
无法将exit
添加到批处理文件中以退出其自己的命令提示符。只关闭一个命令提示符,Uisng taskill似乎有点过头了,你不觉得吗?
PS:我从未在命令提示符下处理批处理文件,所以我假设它接受相同的命令。
答案 2 :(得分:2)
以下是可行的解决方案:在执行批处理(.bat)文件中的命令后关闭命令窗口,您需要在批处理文件的新行中添加“exit”(不带引号)。如果你想延迟执行,这就是它的工作方式:
public class TestSleep
{
public static void main ( String [ ] args )
{
System.out.println("Do this stuff");
try
{
Thread.currentThread().sleep(3000);
}
catch ( Exception e ) { }
System.out.println("Now do everything after this");
}
}
干杯
答案 3 :(得分:1)
如果使用Runtime.exec()启动批处理文件,它将返回一个Process对象。调用destroy()方法将终止该进程。
答案 4 :(得分:0)
我也有同样的问题。我第一次用作
Runtime.getRuntime().exec("cmd.exe start /c test.bat");
然后我尝试如下。它工作正常。
Runtime.getRuntime().exec("cmd.exe /c start test.bat");
试试这个。
答案 5 :(得分:0)
虽然这似乎是一个老问题而且可能已经解决了......我很长一段时间都在同样的事情上挣扎......最后这个有用了
String command = "cmd.exe /c build.bat";
Runtime rt = Runtime().getRuntime();
Process pr = rt.exec(command);