我正在制作终端应用并使用以下代码
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环境不变。