我對服務器有一個約束,因此Cron/Autosys不可用於計劃shell腳本。有沒有一種方法可以從java程序安排shell腳本?石英調度程序是否有用? 有人可以爲我提供相同的示例代碼。如何從java程序計劃shell腳本
0
A
回答
0
2
以下教程可幫助您安排shell腳本。
http://www.mkyong.com/java/how-to-run-a-task-periodically-in-java/
通過使用
Runtime.getRuntime().exec("sh shellscript.sh");
您可以運行shell腳本。
0
您可以使用定時器:
int loopTime = 1000*60*60*12;
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
public void run()
{
Runtime.getRuntime().exec("your java command: java -classpath...");
}
},0, loopTime); //0 is for delay time in ms, loopTime is also in ms
0
是的,你可以使用Quartz安排從Java你的任務。然後,您的Job實現將調用Runtime.exec(...)來啓動shell任務,並可能調用一些Process方法與任務交互。一些提示:
當你要推出一個shell腳本,而不是直接調用你的shell腳本
Runtime.exec(...)
應該調用你的外殼可執行並通過您的shell腳本作爲參數。也就是說,您應該執行sh /path/to/your/shell/script.sh
,而不是執行/path/to/your/shell/script.sh
。石英調度程序支持cron表達式,請參見石英中的CronTrigger和tutorial on supported cron expressions。
很顯然,Quartz調度程序作業只有在Quartz Scheduler服務運行的JVM運行時纔會運行。通常你在實施工作時需要考慮到這一點。另外,如果您沒有實現某種作業持久性,例如JobStoreCMT,則可能會跳過作業執行,並且動態調度的作業執行將無法在重新啓動後存活。
1
您可以使用ProcessBuilder類從java執行任何外部進程,包括批處理文件。這裏有Executing another application from Java有一個例子。
而不是定時器類,創建一個線程檢查時間間隔小可能會解決時間依賴性。
public class Test implements Runnable {
void run() {
while(true) {
if(myTime != currentTime) {
// check for the time until your time has come
// if not, sleep and continue
sleep(1000);
continue;
}
// Do your job and exit when necessary
}
}
}
你可以用線程執行這個類。
相關問題
- 1. shell腳本不是從Java代碼運行R(Rhipe)計劃
- 2. 如何從Java小程序執行shell腳本
- 3. 如何從Java類執行shell腳本程序文件
- 4. 如何從Java程序調用shell腳本?
- 5. 如何從Java應用程序執行UNIX Shell腳本?
- 6. 如何從unix shell腳本獲取java程序完成狀態?
- 7. 通過java程序執行shell腳本
- 8. Shell腳本進程計數
- 9. 從Java運行shell腳本
- 10. 從Java運行shell腳本
- 11. 保存計劃的後臺進程的shell腳本
- 12. 從java程序調用shell腳本並將參數從java傳遞給shell腳本循環
- 13. 如何在計劃程序/ cron腳本中獲取typoscript設置?
- 14. 如何從shell腳本
- 15. 如何從shell腳本
- 16. shell腳本以從Python程序
- 17. 從shell腳本中刪除Node.js程序
- 18. NUNIT自動化腳本不從任務計劃程序運行
- 19. 附表[Virtualenv從屬] Python腳本與Windows任務計劃程序
- 20. 如何在java程序中運行長shell腳本代碼?
- 21. 如何從Java遠程機器上運行shell腳本?
- 22. 通過shell腳本從Java程序中的計算機讀取圖像文件
- 23. 執行shell腳本程序
- 24. 如何從Powershell腳本調用任務計劃程序中的任務?
- 25. 執行從Java,Shell腳本Shell腳本已經閱讀操作
- 26. 無法從運行java程序的shell腳本獲取輸出
- 27. 從java程序後臺啓動shell腳本
- 28. Shell腳本將不會從Java程序運行
- 29. 從java程序運行shell腳本時被拒絕權限
- 30. 從shell腳本中調用java應用程序