使用java运行后退出批处理文件
我知道如何使用java代码启动批处理文件。 运行批处理文件时,会打开命令提示符。 要关闭命令提示符,我正在使用taskill/im cmd.exe。 但问题是,用于启动jboss的命令提示符也被关闭。 我想用一个特定的进程id终止cmd。使用java运行后退出批处理文件,java,batch-file,cmd,Java,Batch File,Cmd,我知道如何使用java代码启动批处理文件。 运行批处理文件时,会打开命令提示符。 要关闭命令提示符,我正在使用taskill/im cmd.exe。 但问题是,用于启动jboss的命令提示符也被关闭。 我想用一个特定的进程id终止cmd。 如何获取特定cmd promt的进程id并使用java杀死它使用cmd.exe/c job.bat运行批处理文件。/c开关执行命令,然后终止命令解释器。您不能将退出添加到批处理文件以退出其自己的命令提示符吗。仅仅关闭一个命令提示符,Uisng taskill似
如何获取特定cmd promt的进程id并使用java杀死它使用
cmd.exe/c job.bat
运行批处理文件。/c
开关执行命令,然后终止命令解释器。您不能将退出
添加到批处理文件以退出其自己的命令提示符吗。仅仅关闭一个命令提示符,Uisng taskill似乎就有些过火了,你不这么认为吗
PS:我从来没有只在命令提示符下处理批处理文件,所以我假设它接受相同的命令。如果使用Runtime.exec()启动批处理文件,它将返回一个进程对象。调用destroy()方法将终止该进程。我也有同样的问题。我第一次使用
Runtime.getRuntime().exec("cmd.exe start /c test.bat");
然后我试着如下。它很好用
Runtime.getRuntime().exec("cmd.exe /c start test.bat");
试试这个。尽管这似乎是个老问题,可能已经解决了。。我为同一件事挣扎了很长时间。。这终于奏效了
String command = "cmd.exe /c build.bat";
Runtime rt = Runtime().getRuntime();
Process pr = rt.exec(command);
以下是有效的解决方案:要在执行批处理(.bat)文件中的命令后关闭命令窗口,需要在批处理文件的新行中添加“退出”(不带引号)。如果您想延迟执行,这是一种方法,它可以工作:
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");
}
}
干杯你的主意不错。但问题是我想在15分钟后关闭它。如果我在批处理文件中给出exit,那么它将立即关闭。zach的回答也不会等待15分钟@abc:你们必须把这个技巧和“cmd/c”结合起来。我会把JBoss注册为一个服务。例如,请参见我编写的脚本: