2013-01-12 59 views
-1

我有一個java文件,我想在一臺機器上反覆執行。該文件應該在文件執行的前一個實例結束後自動執行。如何實現這一目標?在一個循環重複執行一個java文件

+1

你試過了什麼? –

+0

這可能有助於 http://stackoverflow.com/questions/11912659/executing-a-task-repeatedly-in-java – takirala

+0

http://docs.oracle.com/javase/1.4.2/docs/api/ java/util/Timer.html – takirala

回答

2

使用bash腳本中調用可執行

for i in 1 2 3 4 5 .. N 
do 
    java executable 
done 
0

Java提供在您(或他人)寫它計劃將發揮作用的環境。

操作系統細節將決定如何啓動該程序。如果您希望程序在每次前一個副本完成時啓動,則需要使用該操作系統支持的腳本語言循環啓動Java程序,或將該程序轉換爲系統服務/守護程序。

存在其他技術,但實際上在第一次完成後,它們並不啓動第二個程序。它們是:

  1. 立即啓動程序的第二個副本(除非已經找到)。該程序被編寫爲什麼也不做,而它可以檢測到它正在運行「啓動器」。一旦失去一個進程,第二個負責處理(並啓動它的備用故障轉移)。

  2. 捕獲關閉/崩潰事件並在退出時啓動程序的副本,實際上它有兩個程序同時運行,但持續時間很短。這通常是完成的;但在技術上是不健全的,因爲在啓動新流程之前,程序可能會崩潰的方式很多。

0

你可以編寫一個簡單的Perl或Python腳本,可以在Windows和Linux上工作。

#!/usr/bin/perl 
$N = 100; 
for($i = 0; $i < $N; $i++){ 
    system('/full/path/to/java -cp full_class_path my.class.Name'); 
} 

您可以在java文件中調用此腳本或在命令行中執行它。

Runtime.getRuntime().exec("perl script.pl")