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

问题描述 投票:0回答:3

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

java scheduled-tasks
3个回答
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
  }
}

2
投票

Windows 已经有一个任务计划程序,您可以从命令行调用它:Schtasks.exe

SCHTASKS /参数[参数]

说明: 使管理员能够创建、删除、查询、更改、运行和 结束本地或远程系统上的计划任务。

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

/删除删除计划任务。

/Query 显示所有计划任务。

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

/Run 按需运行计划任务。

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

/ShowSid 显示一个调度t对应的安全标识符 问名字。

/?显示此帮助消息。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.