2016-09-28 4 views
2

내 Java 코드를 사용하여 Window Task Scheduler에서 태스크를 생성하려고합니다. OS win7 64 비트를 사용하고 있습니다. 작업을 만든 후에는 매주 또는 격주로 예정된 시간을 편집해야합니다. Java 코드 또는 명령 프롬프트에서 사용하기 위해 사용할 창 스케줄러 API가 있습니까?Java를 사용하여 Window Task Scheduler에서 스케줄러 태스크를 생성하는 방법은 무엇입니까?

+1

구글은 항상 속삭이는 전에 유래 문을 넣었습니다. :) – Harsh

답변

1

윈도우는 명령 줄에서 호출 할 수 있습니다 이미 작업 스케줄러가 : Schtasks.exe에

합니다 schtasks/매개 변수 [인수]

설명 : 는, 쿼리, 변경, 생성, 삭제하는 관리자를 활성화, 로컬 및 원격 시스템에서 예약 된 작업을 실행하고 작업을 종료하십시오.

매개 변수 목록 : /만들기 새 예약 된 작업을 만듭니다.

/삭제 예약 된 작업을 삭제합니다.

/Query 예약 된 모든 작업을 표시합니다.

/변경 예약 된 작업의 속성을 변경합니다.

/실행 필요에 따라 예약 된 작업을 실행합니다.

/End 현재 실행중인 예약 된 작업을 중지합니다.

/ShowSid 예약 된 t 요청 이름에 해당하는 보안 식별자를 표시합니다.

/? 이 도움말 메시지를 표시합니다.

0

시도해보십시오. http://yajsw.sourceforge.net/. "YAJSW"(또 다른 Java Service Wrapper)를 사용하여 Java 서비스를 Windows 서비스로 등록 할 수 있습니다.

2

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

+0

나를 위의 코드 작업 파일. 하지만 내 코드를 사용하여 스케줄러 작업을 삭제할 때 ** 오류 : 액세스가 거부되었습니다. ** 창 작업 스케줄러에서 수동으로 작업 할 때 삭제됩니다. 이것에 대한 어떤 해결책? – Harsh

관련 문제