我有以下代码:
builder = new ProcessBuilder("cmd");
builder.inheritIO();
p = builder.start();
p.waitFor();
在创建的命令行中,我想写一下,例如“目录”。这怎么可能?
祝你好运
修改 我必须运行多个命令,我不能使用多个cmds。
答案 0 :(得分:1)
CMD.exe
表示(部分),
选项
/C Run Command and then terminate
所以,你应该可以使用
cmd /C dir
但是使用File.list()
更喜欢纯Java解决方案可能更好。
答案 1 :(得分:1)
你不能使用这样的东西:
ProcessBuilder builder = new ProcessBuilder("cmd");
Process p = builder.start();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream));
for(int i=0;i<7;i++) {
writer.write("dir");
writer.newLine();
writer.flush();
}
// Now terminate
writer.write("exit");
writer.newLine();
writer.flush();
p.waitFor();
要阅读输出,请使用p.getOutputStream()
(如果您愿意,请使用p.getErrorStream()
- 同时考虑ProcessBuilder.redirectErrorStream()
)。
答案 2 :(得分:0)
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command);