如何保留从runtime.exec()返回的shell;

时间:2015-11-08 18:36:38

标签: android shell command-line

我正在制作终端应用并使用以下代码

    try {
        process = runtime.exec(command);
        BufferedReader stream = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = stream.readLine()) != null) {
            stringBuilder.append(line);
            stringBuilder.append('\n');
        }
        stream = new BufferedReader(new InputStreamReader(process.getErrorStream()));
        while ((line = stream.readLine()) != null) {
            stringBuilder.append(line);
            stringBuilder.append('\n');
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

问题是每次执行exec()时,都会创建一个新的shell。 (这就是我读到的)

假设我执行cd,它将更改目录,但下次执行命令时,它将从/执行。

在应用关闭之前,如何使用相同的shell?

PS:此问题与How to execute cmd commands via Java不同 我能够执行命令,没问题!我不是试图通过将它们放在源代码中来执行已知命令。我从用户那里得到了命令。问题是我无法保持shell环境不变。

0 个答案:

没有答案