2014-02-10 16 views
1

我想分發需要定期運行的jar腳本。我不知道最終用戶將擁有哪個操作系統。每天在特定時間運行jar文件的解決方案

是否有可用於在特定時間每天運行jar文件的跨操作系統解決方案。

也就是說,在窗口它增加了一個計劃任務和一個cron任務等

感謝任何幫助!

回答

4

您可以使用用Java編寫的任務調度框架來保證跨操作系統的可移植性 - 因爲每個操作系統都有自己的調度命令,所以不會在不同的平臺上找到相同的工具。例如,請看Quartz。但要注意,你必須學習如何配置,設置和編程任務,恕我直言,它不是簡單。但是,再次,這是你必須支付便攜性的代價。

還有一種選擇是使用Timer服務來安排任務(請看tutorial),但爲此您需要一個符合Java EE的服務器。無論哪種方式,注意到「運行jar」實際上意味着在jar文件中執行main方法,這只是對Java程序的調用。

+0

謝謝!我會研究它。它會在Windows中創建一個計劃任務嗎?還是需要不斷運行,並在特定時間運行該罐子? – Samosa

+0

它會將任務存儲在數據庫(或其他數據存儲區)中,您可以在任何受Java支持的平臺上對其進行編程,以基本上以任何您想要的方式運行,具有極大的靈活性。 –

+0

好gr8!但它是否需要不斷在後臺運行?我想是的。 – Samosa

1

如果您正在尋找獨立於操作系統的調度程序,那麼這樣的事情不存在。 Quartz是Java環境的任務調度器。例如 - 您可以使用quartz來安排您的Java程序中的任務。你必須編寫一個Java程序,並隨時使用石英來滿足你的需求。換句話說,您必須在操作系統啓動時啓動您的Java程序,以便它可以運行您的預定作業。手頭任務的複雜性過高!您應該考慮使用操作系統特定的調度程序來滿足您的需

+0

好吧,這是有道理的!但是,對於所有3個主要的操作系統,是否有一個依賴操作系統的解決方案?即Windows,Mac,Linux。 – Samosa

+0

@ZendNoob不幸的是,沒有獨立於操作系統的解決方案。廣泛地說,你需要使用2個不同的路徑 - 一個用於Windows,另一個用於u * x(linux,mac或任何其他unix風味)。從你的代碼調用cron來安排所有unix風格的作業。在Windows中,我相信你可以通過插入註冊表項來安排工作。在代碼中保存註冊表條目並使用regedit將其導入到註冊表中。希望這些線索有所幫助。 – RaviH

相關問題