java定時執行bat檔案的cmd命令
阿新 • • 發佈:2019-01-22
需求:
實現Windows系統開機後,執行定時器任務,每分鐘執行一次指定目錄的檔案上傳下載操作,使我的電腦中工作目錄檔案和碼雲git伺服器上面的檔案保持同步一致
package com.kj.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by KJ on 2018/5/2.
*/
public class SyncWork {
public void runbat(String batName) {
try {
Process process = Runtime.getRuntime().exec(batName);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
try {
String line = null;
while ((line = in.readLine()) != null) {
//System.out.println("output: " + line);// 如果你不需要看輸出,這行可以登出掉
}
process.waitFor();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println("執行cmd命令完畢");
}
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
// 把run方法裡的內容換成你要執行的內容
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//System.out.println("當前的系統時間為:" + sdf.format(new Date()));
SyncWork test = new SyncWork();
test.runbat("E:\\svn\\java\\baseline\\syncAll.bat");
}
}, 1000, 60000); //1秒後開始執行,1分鐘執行一次
}
}
注:git同步命令在下一篇博文給出