其中:
使用ProcessBuilder建構子(1.5後才有的,請參考:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html)設定要執行的script和要傳入的參數:
ProcessBuilder pb = new ProcessBuilder("./myscript.sh", "sampleParam1"); //這在shell script中,可以用$1去接此參數sampleParam1可以使用ProcessBuilder中的environment方法,來設定或取得執行中的環境變數,使用ProcessBuilder中的directory方法來設定工作目錄,就是要執行script的目錄。
範例script如下:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwxorFuGI3a00bnhI12RX1y9rTohiAVTOCKUcTVRPbv_jCN53jokbLzfIrP3wygb_TPJwZXRRRy8M97czBuBYADlfg3m9sYGxxG1agTVj8A0WKrjT6gk6afU63d4HY397WVp8gojL_NWUl/s1600/script.20121024.png)
執行java程式後,可以看到在執行工作目錄產生了a.txt,如下:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi50ZxpTgEBJuzk097AkOzrDob-eaKA7oqudq4fXoTbZtE4eCWN8Zq3VtAn9k3_XtQdTRBse4q0hc3CF5lXix3qBGcDB8L3EGRMViHOSfuEAGdzZLOP8IUoHJnwGuADZnQ84DhyDSyGamaH/s1600/result.20121024.png)
檢視a.txt內容,可以看到java中設定的參數傳入到sciprt中,並輸出到a.txt中:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_MaK_7YjL-XP9o-vmWtQld8eOqLqfevPEbOU9Afs-w1o_y3jJsrCl04V5DeEeyuTs3MgEtOg8mqLjpKPshz_x2h5G9g7nJvs0va315wPeZJ6y6dEScSz5shP4TpTbXnvssJ9VMbyUykrP/s1600/result.02.20121024.png)
沒有留言:
張貼留言