Java在进程中执行某些操作

时间:2015-10-03 18:27:40

标签: java process

我有以下代码:

builder = new ProcessBuilder("cmd");
builder.inheritIO();
p = builder.start();
p.waitFor();

在创建的命令行中,我想写一下,例如“目录”。这怎么可能?

祝你好运

修改 我必须运行多个命令,我不能使用多个cmds。

3 个答案:

答案 0 :(得分:1)

Windows命令站点上的

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)

请参阅http://www.java-tips.org/java-se-tips-100019/88888889-java-util/426-from-runtimeexec-to-processbuilder.html

 Runtime runtime = Runtime.getRuntime();
 Process process = runtime.exec(command);