执行命令时关闭CMD窗口-Java
我正在使用Sikuli执行自动化测试,我正在编写一个用于运行测试的小型java应用程序。我搜索了其他答案,但大多数答案都与从java运行批处理脚本有关,我需要从java运行整个命令。我有以下命令从cmd运行Sikuli:执行命令时关闭CMD窗口-Java,java,windows,cmd,sikuli,Java,Windows,Cmd,Sikuli,我正在使用Sikuli执行自动化测试,我正在编写一个用于运行测试的小型java应用程序。我搜索了其他答案,但大多数答案都与从java运行批处理脚本有关,我需要从java运行整个命令。我有以下命令从cmd运行Sikuli: Process p = Runtime.getRuntime().exec("cmd /c start /wait C:\\Sikuli\\runIde.cmd -r C:\\Sikuli\\xmlRunner\\runners\\Runner.sikuli --args 5"
Process p = Runtime.getRuntime().exec("cmd /c start /wait C:\\Sikuli\\runIde.cmd -r C:\\Sikuli\\xmlRunner\\runners\\Runner.sikuli --args 5");
System.out.println("Waiting for command to be executed");
p.waitFor();
System.out.println("Command finished");
这将启动一个新的cmd窗口并开始执行我的脚本,但当脚本完成时,它不会关闭cmd窗口。脚本运行完毕后,是否有办法自动关闭cmd窗口?使用
cmd/c start/wait cmd/c:\\Sikuli\\runIde.cmd-r c:\\Sikuli\\xmlRunner\\Runner\\Runner.Sikuli--args 5
见码头:
WAIT Start application and wait for it to terminate.
command/program
If it is an internal cmd command or a batch file then
the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command
has been run.
If it is not an internal cmd command or batch file then
it is a program and will run as either a windowed application
or a console application.
当您直接调用
runIde.cmd
时,会应用/K
开关,但当您使用cmd.exe
代理此调用时,此规则不适用。可能重复您的命令后是否尝试连锁退出
?类似这样的内容:processp=Runtime.getRuntime().exec(“cmd/c start/wait c:\\Sikuli\\runIde.cmd-rc:\\Sikuli\\xmlRunner\\runners\\Runner.Sikuli--args 5&exit”)
是否确实要查看该控制台窗口?如果不希望它等待,为什么要指定/wait
?如果我从命令中删除/wait,即使脚本尚未完成运行,它也会转到“command finished”行。请尝试“cmd/c start/wait cmd/c:\\Sikuli\\runIde.cmd-rc:\\Sikuli\\xmlRunner\\runners\\Runner.Sikuli--args 5”
@stewazy我调整了答案。