如何使用Java在Window Task Scheduler中创建调度程序任务?

时间:2016-09-28 10:41:26

标签: java scheduled-tasks

我想使用我的java代码在Window Task Scheduler下创建一个任务。 我使用的操作系统是win7 64bit。 创建任务后,我必须每周或每两周编辑一次预定时间。 是否有在Windows代码中使用的窗口调度程序API或在命令提示符下使用的命令?

3 个答案:

答案 0 :(得分:4)

启动命令行实用程序schtasks

创建任务。

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class TestWinScheduler {

public static void main(String args[]) throws IOException, InterruptedException {
  // schtasks /create /tn "HowToTask" /tr c:\temp\test.cmd /sc once /st 00:00:00 /sd 2022/01/01 /ru username /rp password

  List<String> commands = new ArrayList<String>();

  commands.add("schtasks.exe");
  commands.add("/CREATE");
  commands.add("/TN");
  commands.add("\"HowToTask\"");
  commands.add("/TR");
  commands.add("\"c:/temp/test.cmd\"");
  commands.add("/SC");
  commands.add("once");
  commands.add("/ST");
  commands.add("00:00:00");
  commands.add("/SD");
  commands.add("2022/10/10");
  commands.add("/RU");
  commands.add("username");
  commands.add("/RP");
  commands.add("password");

  ProcessBuilder builder = new ProcessBuilder(commands);
  Process p = builder.start();
  p.waitFor();
  System.out.println(p.exitValue()); // 0 : OK
                                     // 1 : Error
  }
}

执行任务:

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class TestWinScheduler {

public static void main(String args[]) throws IOException, InterruptedException {
  // schtasks /run /tn "HowToTask"

  List<String> commands = new ArrayList<String>();

  commands.add("schtasks.exe");
  commands.add("/RUN");
  commands.add("/TN");
  commands.add("\"HowtoTask\"");

  ProcessBuilder builder = new ProcessBuilder(commands);
  Process p = builder.start();
  p.waitFor();
  System.out.println(p.exitValue()); // 0 : OK
                                     // 1 : Error
  }
}

Ref

答案 1 :(得分:1)

Windows已经有一个可以从命令行调用的任务调度程序:Schtasks.exe

SCHTASKS /参数[arguments]

描述:     使管理员能够创建,删除,查询,更改,运行和     结束本地或远程系统上的预定任务。

参数列表: / Create创建新的计划任务。

/删除删除计划任务。

/ Query显示所有计划任务。

/更改更改计划任务的属性。

/ Run按需运行计划任务。

/ End停止当前正在运行的计划任务。

/ ShowSid显示与计划的t对应的安全标识符 问名字。

/?显示此帮助消息。

答案 2 :(得分:0)

试试这个http://yajsw.sourceforge.net/。使用“YAJSW”(又一个Java Service Wrapper),您可以将您的Java服务注册为Windows服务。