本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。
1 准备一个测试用批处理文件:test.bat
mysqldump -uroot -p123456 test > d:/test.sql2 调用批处理文件的 Java 代码
package test; import java.io.IOException; import org.junit.Test; public class CmdTest { @Test public void testExecCmd() throws IOException, InterruptedException { String cmd = "cmd /c start d:/test.bat"; Process process = Runtime.getRuntime().exec(cmd); process.waitFor(); } }以上代码有一个缺点,运行过程中会弹出 CMD 窗口,且执行完后窗口无法自动关闭。
解决此问题有两个方法: (1) 修改 BAT 文件,在最后新增一行代码 exit
mysqldump -uroot -p123456 test > d:/test.sql exit尽管执行完成后 CMD 窗口会自动关闭,但是执行期间 CMD 窗口还是会弹出
(2) 不修改 BAT 文件,修改 Java 代码,避免弹出 CMD 窗口
package test; import java.io.IOException; import org.junit.Test; public class CmdTest { @Test public void testExecCmd() throws IOException, InterruptedException { Process process = Runtime.getRuntime().exec("d:/test.bat"); process.waitFor(); } }