【发布时间】:2020-05-20 19:59:11
【问题描述】:
背景
我从 Java 应用程序启动了命令提示符。现在我想在刚刚生成的命令提示符中输入命令。如何在 Java 程序刚刚生成的提示符下运行命令?
我的尝试
我的代码创建了一个启动命令提示符的进程。然后它获取进程的 OutputStream 来尝试写入它。但我没有看到任何变化发生。它应该只是更改目录,然后在新目录中运行一系列命令。
// Block that makes new command prompt
List<String> commands = new ArrayList<String>();
commands.add("cmd.exe");
commands.add("/c");
commands.add("start");
commands.add("cmd.exe");
// Block that creates a writer to write to new command prompt
ProcessBuilder pb = new ProcessBuilder(commands);
Process p = pb.start();
OutputStream os = p.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
// Block that actually writes the commands
writer.write(String.format("cd %s\n", PATH);
writer.write(OTHER_COMMANDS); // I'm ommiting the other commands because there's a lot
writer.flush();
writer.close();
我不确定为什么这些命令没有写入弹出的命令提示符。我看到弹出了一个新的命令提示符,但目录从它开始的地方没有改变。如何在我生成的提示中输入命令?
【问题讨论】:
标签: java command-line command-prompt