问题陈述:我只是想启动HUB和Node来使用Selenium Grid执行一些测试。 我有两个批处理文件START HUB.bat和START NODE.bat,当我手动运行它们时,它们完美运行。 但我希望他们使用Java程序@BeforeMethod运行。 我寻找答案无法在java程序中运行.bat文件
Runtime.getRuntime().exec("cmd /C start \"./BatchFiles/START HUB.bat\"");
这将打开CMD,但进入我的git的项目的路径,但犯规运行批处理文件。
我尝试使用Process Builder,但没有打开cmd。
ProcessBuilder pb = new ProcessBuilder("cmd", "/C"," start", "START HUB.bat");
File dir = new File("D:\\work\\GIT REPOSITORY\\project.selenium.maven.jenkinsCI\\BatchFiles");
pb.directory(dir);
Process p = pb.start();
有人可以帮我解决这个问题。以下是批处理文件中的命令。
D:
cd work
java -jar selenium-server-standalone-3.4.0.jar -role hub
您是否尝试过使用批处理文件的绝对路径(不使用相对路径./BatchFiles/...)。 Windows上的目录分隔符是反斜杠,但第一个示例显示错误的分隔符。 – mao
你可以尝试批处理文件的绝对路径吗?重命名批处理文件,使其间没有空间。要检查,批处理文件中的内容是否正确,请尝试手动运行它。 –
批处理文件手动运行完美。我也使用了绝对路径。 调用Runtime.getRuntime()EXEC( \t \t \t \t “CMD/C开始\” d:\\工作\\ GIT REPOSITORY \\ project.selenium.maven.jenkinsCI \\批处理文件中\\ START_HUB.bat \” “); – Sidhant