【发布时间】:2017-06-30 03:32:11
【问题描述】:
我想在 Windows 上执行此命令,但 Java exec 似乎无法使用重定向。我该如何解决这个问题?
c:/coolroid/gicater/mysqldump.exe -h127.0.0.1 -uroot -pagile -P3308 coolroid > C:/jukebackup/coolroid_1498793488965.bak
【问题讨论】:
我想在 Windows 上执行此命令,但 Java exec 似乎无法使用重定向。我该如何解决这个问题?
c:/coolroid/gicater/mysqldump.exe -h127.0.0.1 -uroot -pagile -P3308 coolroid > C:/jukebackup/coolroid_1498793488965.bak
【问题讨论】:
管道不起作用,因为通常您正在运行的应用程序的输出流可以通过 Process.getInputStream() 获得。
解决此问题的方法是先运行“cmd”,然后通过进程的 OutputStream 发送您的语句
【讨论】:
String [] command = {"cmd" , "/C" ,cmd + " >" + finalPath};
Process p = Runtime.getRuntime().exec(command);
问题解决了。 cmd : c:/coolroid/gicater/mysqldump.exe -h127.0.0.1 -uroot -pagile -P3308 coolroid finalPath: C:/jukebackup/coolroid_1498793488965.bak
感谢您的提示@ControlAltDel 感谢@Don Peat 纠正我的问题。
【讨论】: