我想使用 java 运行 .sh 文件。我想要打开一个终端,然后我可以在同一终端中执行另一个命令,最后销毁它。 我已经使用 ProcessBuilder 但无法完成此任务。 我的一段代码:
ProcessBuilder pb = new ProcessBuilder("/home/omar/ros_ws/baxter2.sh");
Process p = pb.start();
这个方法曾经在另一个代码中工作,但我不知道为什么它在我的代码中不起作用。
提前致谢
最佳答案
你怎么知道它没有执行?也许您只是没有看到其结果。执行后您应该得到 p.getInputStream()
并在控制台中打印,例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
此外,如果您使用的是 jdk 7+,请尝试:
pb.redirectOutput(Redirect.INHERIT);
pb.redirectError(Redirect.INHERIT);
Process p = pb.start();
关于java - 使用 java 运行 .sh 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669503/