如何从Java运行.sh文件?
问题描述:
我需要从我的Java代码运行一个.sh文件,而不需要传递任何参数。我已经尝试过用如何从Java运行.sh文件?
Runtime.getRuntime().exec("src/lexparser.sh");
和
ProcessBuilder pb = new ProcessBuilder("src/lexparser.sh");
Process p = pb.start();
上述两种方法没有工作做。是否有任何其他方法来运行.sh文件形式的Java?
答
ProcessBuilder pb = new ProcessBuilder("src/lexparser.sh", "myArg1", "myArg2");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
答
有两件事情,很容易错过:
路径和CWD。确保找到可执行文件的最简单方法是提供绝对路径,例如
/usr/local/bin/lexparser.sh
过程输出。您需要阅读过程输出。输出缓冲,如果输出缓冲区满了,产生的进程将挂起。
你是什么意思_didn't work_? – Apurv 2013-03-15 09:10:16
确保你的.sh是可执行的 – 2013-03-15 09:10:42
你得到了什么错误? – AmitG 2013-03-15 09:10:46