打开一个 shell 并使用 Java 进行交互



我以前问过同样的问题但没有答案,并且在这里和这里发现了一些与此类似的问题,但同样没有适当的答案。谁能帮我解决这个问题。我正在尝试从 Java 打开一个 shell 并与之交互(编写命令并读取 shell 的输出)。命令将由用户给出,例如更改目录,编译C程序等。命令列表不固定。

我也尝试并使用了/bin/bash -c 方法和以下方法。

Process p = new ProcessBuilder("xterm").start();
Process p = new ProcessBuilder("/bin/bash").start();

谢谢,我希望问题清楚。

可行解决方案的示例几乎如下所示

   Process process;
   rt = Runtime.getRuntime();
try 
{
    process = rt.exec(new String[]{"bash","-c","ls -al /home/"});
    log.warn("message to display");
    BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line=null;
    while((line=input.readLine()) != null) {
        log.warn(line);
    }
    int exitVal = process.waitFor();
    log.warn("Exited with error code : "+ exitVal);
}
catch (IOException e) 
{
    log.warn("IO Execption 1 Happen : " + e.getMessage());
} 
catch (Exception e) 
{
    log.warn("Execption Happen : " + e.getMessage());
}

相关内容

  • 没有找到相关文章

最新更新