首先,我发现了很多关于xterm和java的问题,但没有问题直接处理我的问题。
我的问题是什么? 我想从java启动一个xterm终端,我想向这个终端发送命令。 首先,我只想更改目录,但它不起作用。但重要的是,我不知道程序开头的所有命令,因此建议我在运行时向终端发送命令。
这是我的代码:
String[] command= {"xterm"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
Thread.sleep(2000);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
ReadThread input = new ReadThread(in);
input.start();
BufferedReader error = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
ReadThread inputError = new ReadThread(error);
inputError.start();
PrintWriter printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(pr.getOutputStream())),true);
printWriter.println("cd /home/***/sipp/sipp-3.3\n");
Thread.sleep(2000);
input.die();
inputError.die();
printWriter.close();
error.close();
in.close();
pr.destroy();
我认为终端将打开(它确实)并在2秒后将目录更改为sipp-3.3。另外2秒后,xterm应该关闭(确实如此)。 但问题是什么,我的命令不起作用? 请我不想找到像
这样的解决方案String [] gggg = {"xterm", "-c", "multiple commands, with |, &&, ; etc"};
rt.exec(gggg);
因为使用这样的解决方案,我无法向终端发送更多命令。 非常感谢提前!