2014-02-10 2 views
1

주기적으로 실행해야하는 jar 스크립트를 배포하려고합니다. 최종 사용자가 어떤 OS를 사용할지 알지 못합니다.매일 특정 시간에 jar 파일을 실행하는 솔루션

매일 특정 시간에 jar 파일을 실행하는 데 사용할 수있는 교차 OS 솔루션이 있습니까? 이다

이 창에서이 예약 된 작업과 크론 작업 등

감사 어떤 도움을 추가!

답변

4

OS별로 이동성을 보장하기 위해 Java로 작성된 작업 스케줄링 프레임 워크를 사용할 수 있습니다. 각 OS에는 자체 예약 명령이 있으므로 다른 플랫폼에서 동일한 도구를 찾을 수 없습니다.

예를 들어, Quartz을 살펴보십시오. 하지만 경고, 당신은 그것을 구성, 설치 및 프로그램 작업을하는 방법을 배워야 만 할거야, IMHO 이건 이 아니고,이 간단하다. 그러나 다시, 그것은 당신이 이식성을 위해 지불해야하는 가격입니다.

Timer 서비스 (tutorial 살펴보기)를 사용하여 작업을 예약하는 옵션도 있지만 Java EE 호환 서버가 필요합니다. 어쨌든 "jar 실행"은 jar 파일의 main 메소드를 실행하는 것을 의미합니다. jar 파일은 Java 프로그램에 대한 호출입니다.

+0

감사합니다. 나는 그것을 들여다 볼 것이다. Windows에서 예약 된 작업을 만듭니 까? 아니면 끊임없이 실행해야하며 특정 시간에 항아리가 작동합니까? – Samosa

+0

데이터베이스 (또는 다른 데이터 저장소)에 작업을 저장하므로 Java에서 지원하는 모든 플랫폼에서 원하는대로 기본적으로 원하는대로 실행할 수 있습니다. –

+0

Ok gr8! 그러나 지속적으로 백그라운드에서 실행해야합니까? 나는 그렇게 생각한다. – Samosa

1

OS 독립적 인 스케줄러를 찾고 있다면 그러한 것이 존재하지 않습니다. Quartz는 자바 환경을위한 태스크 스케쥴러이다. 예를 들어, quartz를 사용하여 자바 프로그램에서 작업을 예약 할 수 있습니다. 당신은 자바 프로그램을 작성하고 요구 사항에 대한 석영을 사용하기 위해 항상 그것을 계속 실행해야합니다. 즉, OS가 부팅 될 때 Java 프로그램을 시작하여 예약 된 작업을 실행할 준비가되어 있어야합니다. 손에 잡히는 작업이 너무 복잡합니다! 필요에 따라 OS 별 스케줄러 사용을 고려해야합니다.

+0

좋습니다. 하지만 3 대 OS 모두에 OS 의존적 인 솔루션이 있습니까? 즉 Windows, Mac, Linux. – Samosa

+0

@ZendNoob 불행히도 OS 독립적 솔루션이 존재하지 않습니다. 광범위하게 두 가지 경로를 사용해야합니다 - 하나는 Windows 용이고 다른 하나는 u * x (Linux, Mac 또는 기타 유닉스 계열)입니다. 코드에서 cron을 호출하여 모든 유닉스 환경에서 작업을 예약하십시오. Windows에서는 레지스트리 항목을 삽입하여 작업을 예약 할 수 있다고 생각합니다. 코드에서 레지스트리 항목 스 니펫을 잡고 regedit을 사용하여 레지스트리로 가져옵니다. 희망이 단서가 도움이됩니다. – RaviH

관련 문제