2009-02-26 6 views
0

私は以前この質問をしました。 私はfolowing requiremetを持っています。バッチファイルが実行されるまでに遅延が発生する

  1. バッチファイルを実行します。
  2. バッチファイルを実行するのに時間をください。 3.バッチファイルを閉じます

次のコードは要件を満たしていません。私は間違い

 Runtime rt = Runtime.getRuntime(); 
     Process pr = rt.exec(command); 
     //pr.exitValue(); 
     //wait(10000); 
     pr.waitFor(); 
     pr.destroy(); 

私はwork.howは私が

おかげ

答えて

0

に提案したバッチファイルを実行した後、約15分の遅延を与えることができますdoesnotのwaitFor使用している作られた場所を教えてください:出力ストリームとエラーストリームを取得し、それらが何を出力しているかを確認します。バッチファイルでエラーが発生していることを確認して、予想よりも早く復帰させることができます。

+0

文字列コマンド= "cmd/Cはバッチファイルを開始します"; ランタイムrt = Runtime.getRuntime(); プロセスpr = rt.exec(コマンド)。 –

0

私はあなたが欲しいのかわからないんだけど、

のThread.sleep(900000)を持ちます。

あなたは15分間待つことができます。

1

バッチプロセスからstdIOを読み取るスレッドがない場合、バッチプロセスがブロックされる可能性があります。あなたが興味がなくても、あなたはそれを読んでそれを捨てることを依然として望んでいます。その後、あなたの待っていることは、より良い仕事の変化をもたらします。

0

あなたの質問は、Javaで遅延を与えることは言及していませんでした。 Javaプログラムの実行後に遅延がバッチファイル内に存在することを意味します。したがって、任意の時間を設定することができます。ここには20秒の例があります:

@ECHO off 
REM.-- End of application 
:: do something here 
GOTO :END 
:: you could put functions here 
:END 
FOR /l %%a in (20,-1,1) do (TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL) 
TITLE Press any key to close the application&ECHO.&GOTO:EOF 
PAUSE>nul 
関連する問題