0
我想从java运行cmd.exe命令(例如md C:\ blabla创建一个新目录C:\ blabla) 我的代码看起来像这样,它运行没有任何错误:使用apache commons运行简单的cmd.exe命令exec
import java.io.IOException;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteException;
public class Test {
public static void main(String[] args) throws ExecuteException, IOException {
CommandLine cmdLine = new CommandLine("cmd.exe");
cmdLine.addArgument("md");
cmdLine.addArgument("C:\\blabla");
DefaultExecutor executor = new DefaultExecutor();
executor.execute(cmdLine);
}
}
但是,如果我去到C:\没有文件夹作为布拉布拉我所期望的,因为手动键入MD C:\布拉布拉输入cmd.exe正常工作。我也试过“C:\ Windows \ System32 \ cmd.exe”而不是“cmd.exe”,但没用。
在控制台输出看起来是这样的:
的Microsoft Windows [版本6.1.7601] 版权所有(C)2009年微软公司。版权所有。
C:\用户\ Selphiron \工作区\测试>
哪里错了吗?
Thx为您的答案。它工作,但令我惊讶的是,当我打开cmd.exe并键入md C:\ blabla时,新目录被创建(Windows 7 64位)。 反正谢谢:) – Selphiron 2014-11-05 16:25:01
只要给''cmd.exe'作为参数的命令并不意味着cmd接受它并执行它。检查''cmd.exe /?''来检查参数的作用。 – f1sh 2014-11-05 19:22:20