1. 程式人生 > >java定時執行bat檔案的cmd命令

java定時執行bat檔案的cmd命令

需求:

實現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同步命令在下一篇博文給出