0

私は、既存のinstall4jプロジェクトにサードパーティのインストーラーを追加しようとするといううらやましい立場にいることに気づきました。サードパーティのインストーラーが、起動時にWindows Vista/7で個別のUAC要求を生成しないことを確認しようとしています。コマンドプロンプトまたはPowerShellのいずれかから機能する、インストールをサイレントにするために使用できる引数がいくつかあります。

ビルドサーバーの5.1へのアップグレードをまだスケジュールしていないため、現在、install4j5.0と5.1の両方でこれをテストしています。私のテストマシンはWindows7VMであり、Java 1.6と1.7がバンドルされ、1.7がプリインストールされた状態でテストしました。

インストール中に、引数がプロセスに正常に渡されたようには見えません。Process Explorerを使用すると、CMD.EXEがコマンドで起動されていることがわかります。

C:\Windows\system32\cmd.exe /D /C "C:\Users\KRACHY~1\AppData\Local\Temp\i4j1544166103144462629.bat" 

バッチファイルが呼び出されています

"C:\Users\KRACHY~1\AppData\Local\Temp\E4JF73~1.TMP\user\VCREDI~1.EXE"  /q /norestart

これにより、setup.exeが一時フォルダに抽出され、次のコマンドで起動されます。

c:\a87fe1446d33379e58\Setup.exe

最終的なセットアップには/q/ norestart引数がなく、インストールのかなり早い段階で許可を得た使用許諾契約ページから始まるため、これらすべてを追跡できます。

これで、プロセスが停止したため、インストーラーから抽出したすべてのファイルを保存できます。コマンドプロンプトからそのバッチファイルのコマンドラインを直接実行すると、インストーラーは実際に期待どおりに静かにインストールされます。したがって、完全なinstall4jプロセスの一部として実行すると、引数が最終的なセットアッププロセスに到達するのを妨げる何かがあります。おそらく環境空間に飢えていますか?これらのプロセスに何が起こっているのかを正確に把握したり、修正したりするにはどうすればよいですか?

現在この1つのライブラリに依存しているという理由だけで、インストールドキュメントを更新する必要がない場合は、この方法をお勧めします。

4

1 に答える 1

1

新しいProcessBuilder( "実行可能ファイルへのパス"、 "/ q"、 "/ norestart")。redirectErrorStream(true).start()。waitFor()を"スクリプトの実行"アクションで試すことができます。中間バッチファイルはinstall4j6でなくなります。

于 2013-02-28T08:13:32.250 に答える