从Java

时间:2016-12-07 06:13:01

标签: java cmd process outputstream processbuilder

我正在尝试能够在Windows上从Windows输入命令到命令提示符。我使用processBuilder,打开命令提示符,并获取输出流,但是当我尝试写入时,似乎没有任何事情发生。我是否需要包含其他内容,或者我是否认为这一切都错了?

我知道我可以在最初启动时将包含命令的参数传递到命令提示符,但我的目标是能够先打开窗口,然后与它进行交互 second ,而不是在同一时间。

我的代码:

    ArrayList<String> commands = new ArrayList<>();
    commands.add("cmd.exe");
    commands.add("/c");
    commands.add("start");

    ProcessBuilder pb = new ProcessBuilder(commands);

    Process p = pb.start();

    BufferedWriter stdin = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));

    stdin.write("dir");
    stdin.newLine();
    stdin.flush();

我试过搜索,但我没有找到任何满意的答案。这段代码是我从该搜索中拼凑起来的代码。 我的最终目标是能够为youtube-dl编写用户界面,这是一个命令行程序,因此我可以获得更多这方面的经验。我希望用户能够从多个选项中选择,然后根据他们的选择执行程序。

1 个答案:

答案 0 :(得分:-1)

我正在尝试手动执行youtube-dl事情,因为youtube dl事情是使用大量CMD命令的自动脚本。

返回主题,使用:

Runtime.getRuntime().exec()