2016-05-03 16 views
1

プロジェスバーをinstall4jのバッチファイルの実行にリンクすることはできますか?リンクプログレスバーをInstall4jでバッチファイル実行する

私はProcessBuilderを介して、私のバッチファイルやシェルファイルを実行することができますが、私はinstall4jにプログレスバーを通知するかどうかはわかりません

ファイル名を指定して実行]スクリプトステップ

File installationDir = new File((String)context.getVariable("sys.installationDir")); 
File executable = new File(installationDir, "bin/start.sh"); 
File logFile = new File(installationDir, "autorun.out.log"); 

ProcessBuilder pb = new ProcessBuilder(executable.getAbsolutePath(), 
"-p", (String)context.getVariable("projectsdir"), 
"-n", (String)context.getVariable("projectname")); 

pb.redirectErrorStream(true); 
pb.redirectOutput(logFile); 
pb.directory(installationDir); 
Process p = pb.start(); 
p.waitFor(); 
return (p.exitValue() == 0); 

答えて

1

プログレスバーが表示されている場合画面上で呼び出しによって進捗状況を設定することができます

context.getProgressInterface().setPercentCompleted(...); 

そのためには、パーセント値が必要です。あなたは、このような値を持っていない場合は、進捗状況を設定

context.getProgressInterface().setIndeterminateProgress(true); 

を呼び出すことにより、不確定にプログレスバーを設定することができ、「プログレスバーの設定」アクションでも可能です。

+0

ありがとうございます。実行可能ファイル/バッチタスクを使用すると、マイルストーンに基づいて完了したパーセントを更新できるようにコールバックを設定する方法がありますか?私は読むことができるログファイルがありますが、バッチ実行を処理するスレッドと、推測するバーを更新するスレッドが必要です。 ** setIndeterminateProgress **ははるかに容易に見える –

+0

"*マイルストーンに基づいて完了したパーセンテージを更新できるようにコールバックを設定する方法はあります*" - >いいえ、バッチを実行する独自のアクションを作成する必要がありますファイルを読み込み、進行状況を判断するためにstdinから読み込みます –

関連する問題