等到DOS命令执行完成 - Java

Hri*_*tov 1 java mysql import dump wait

我试图在MySQL数据库中导入大量的.dmp文件,因为有超过250个必须导入的文件,我编写了一个应用程序来自动执行250+ DOS命令.它的代码:

String baseCommand = "cmd /c MySQL -h localhost -u root amateurstable < ";
Process p = Runtime.getRuntime().exec(baseCommand + filePath);
Run Code Online (Sandbox Code Playgroud)

它确实执行它应该执行的命令.问题是某些.dmp文件大于100MB,但上面的代码不会等到命令执行完成.

当它执行大文件的导入命令时,它不会等到导入完成后立即执行下一个命令.这在计算机的响应性方面引起很多麻烦.

问题是如何让它等到命令执行完成?

pus*_*shy 5

Runtime.exec返回一个具有waitFor()方法的Process对象.

waitFor()导致当前线程在必要时等待,直到此Process对象表示的进程终止.

由于您已经拥有该Process对象,因此可以将调用添加到waitFor()

Process p = Runtime.getRuntime().exec(baseCommand + filePath);
p.waitFor();
Run Code Online (Sandbox Code Playgroud)