使用java运行后退出批处理文件

时间:2009-03-02 05:01:54

标签: java batch-file cmd

我知道如何使用java代码启动批处理文件。 当我运行批处理文件时,命令提示符被打开。 要关闭命令提示符,我使用的是taskill / im cmd.exe。 但问题是用于启动jboss的命令提示符也已关闭。 我想杀死具有特定进程ID的cmd。 我如何获取特定cmd promt的进程ID并使用java

终止它

6 个答案:

答案 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);
相关问题