通过计时器类执行批处理

时间:2013-02-02 15:08:32

标签: java

我的C:驱动器中有一个名为abc.bat的批处理文件,我想每两分钟执行一次。我必须用Java做到这一点。我需要使用TimerTask类。以下是我目前的代码:

import java.util.TimerTask;
import java.util.Date;
import java.util.Timer;


// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {

    // Add your task here
    public void run() {
        Runtime.getRuntime().exec("cmd.exe /c start abc.bat");
    }
}

//Main class
public class SchedulerMain {
    public static void main(String args[]) throws InterruptedException {

        Timer time = new Timer(); // Instantiate Timer Object
        ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
        time.schedule(task, now ,TimeUnit.SECONDS.toMillis(2));

    }
}

1 个答案:

答案 0 :(得分:0)

如果您的abc.bat文件位于c:\,请使用

Runtime.getRuntime().exec("cmd.exe /c start c:\\abc.bat");

您还需要创建

java.util.Date now = new java.util.Date(); 

如果你想在time.schedule(task, now ,TimeUnit.SECONDS.toMillis(2));中使用它
或者只使用time.schedule(task, new java.util.Date() ,TimeUnit.SECONDS.toMillis(2));