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