2016-08-23 4 views
0

私はPowerShellでスクリプトを実行しようとしています。ループ内でいくつかのJavaコードを実行する必要があります。だから私は実行します。タイムアウトを使用してJavaアプリケーションを実行

while(something){ 
    java my_program 
} 

しかしmy_programには時間がかかり、私はタイムアウトを設定したいと思います。これどうやってするの?

答えて

0

あなたはこのような何かを試みることができる:あなたがループ条件ながら置くことができ、私はこのコードはあなたのために正常に動作するとは思わ

while($something){ 
    $p = [diagnostics.process]::start("java my_program") 
    if (! $p.WaitForExit(1000)) 
    { 
     $p.kill() 
    } 
} 
+0

コードを説明してください。これは基本的にコードダンプです。 –

+0

@rabbitguy私はこのコードは何の説明も必要ないと思っています...しかし、新しいプロセスでjavaアプリケーションを起動し、そのプロセスを '$ p'に割り当てます。それから、プロセスが完了するまでに1000ミリ秒待って、この時間内に完了しなければ終了します... –

+0

なぜ$ p = diagnostics.process] :: start( "C:/ etc .../java.exe "、" package/my_programm "は動作していませんか? – 77140B

0

を、

public class JavaTimeout { 

    public void myMethod(){ 

     long startTime = System.currentTimeMillis(); // put the start time 

     while((System.currentTimeMillis() - startTime) < 5000) // if if 5 second end 
     { 
      // your method do something here 
     } 
     System.out.println("5 sec end..."); // print the timeout 

    } // end myMethod method 

} // end JavaTimeout Class 

私はホープことができます。..

関連する問題