我无法从我的java代码调用shell脚本。 这是我的代码。任何人都可以让我知道我在这里缺少什么。
protected boolean shellExecute() throws InterruptedException {
try {
Process p = Runtime.getRuntime().exec("/home/baibhav/try_scripts/javacall.sh");
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
答案 0 :(得分:0)
尝试在脚本名称
之前使用shProcess p = Runtime.getRuntime().exec("sh /home/baibhav/try_scripts/javacall.sh");
答案 1 :(得分:0)
如果您遇到IO异常,请检查您的脚本路径
答案 2 :(得分:0)
如果脚本有输出,则需要获取返回的Process
'输出并从中读取进程不会阻止。
Process p = Runtime.getRuntime().exec("/home/baibhav/try_scripts/javacall.sh");
InputStream scriptStdout = p.getInputStream();
// Read from input stream and proecess it.
// In finally block:
scriptStdout.close();
你没有说你是否抛出异常或系统是否被绞死。如果它被绞死,那可能就是原因。
另外,请考虑改用ProcessBuilder
。