剛接觸 linux下的開發,最近遇到java調用shell指令碼的問題,找到一個比較適合菜鳥級的方法,轉述如下:
在需要啟動並執行SHELL指令碼第一行添加 #!/bin/sh
然後在終端運行 chmod a+x test.sh 就可以把test.sh轉化為可執行檔
另外需要注意的是java啟動並執行目錄和shell使用者可能不同,建議使用全路徑,如 /root/bin/test.sh
全部代碼
------------------------------------------------------------------------------------------------------------------------------
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class RunShell {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("/home/tina/Desktop/cal_time.sh");
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while((line = input.readLine()) != null)
System.out.println(line);
input.close();
ir.close();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------
即可正確執行指令碼,代碼已運行,驗證無誤