Java 在进程中执行某事

Java Execute something in Process

我有以下代码:

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

在创建的命令行中,我想写例如"dir"。这怎么可能?

此致

编辑: 我必须 运行 多个命令,但我不能为此使用多个命令。

CMD.exe 在 Windows 命令站点上说(部分),

Options

/C     Run Command and then terminate

所以,你应该可以使用

cmd /C dir

但使用 File.list().

的纯 Java 解决方案可能是更好的主意

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);

你不能只用这样的东西吗:

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())。