Java:运行控制台命令并保持控制台运行,以获取其他控制台命令

时间:2019-12-06 21:27:55

标签: java process console pipe stdin

对不好意思的问题很抱歉,这并不容易。

  1. 我需要运行控制台命令,而不仅仅是使用System.exec调用它,我需要稍后访问该进程。

  2. 所以我决定选择ProcessBuilder

    List<String> commands = new ArrayList<String>(); commands.add("cmd.exe"); //setting up what shell is used commands.add("/c"); commands.add(commandString); //adding the actual command ProcessBuilder pb = new ProcessBuilder(commands); Process running = pb.start();

    1. 如何继续写入同一外壳?因此,当我调用多个命令时,它们不会在新的Shell中执行,而是在同一外壳中执行。这是必要的,因为有人可能会使用CD之类的命令来更改结果以供进一步输入。

示例: 执行:一个shell中的CD和dir / ls与调用两个shell实例不同。

  1. 我也希望能够使用管道,而使用I或II(至少对我而言)是不可能的

解决方案必须在Windows和Linux上运行。我很高兴有人能提供任何帮助。 有人在网上做了一个教程: https://alvinalexander.com/java/java-exec-system-command-pipeline-pipe

但是看起来有点...麻烦

谢谢大家

P.D。 我认为最简单的解决方案是以某种方式直接写入shell。但是现在我不知道该怎么做。

0 个答案:

没有答案
相关问题