web-dev-qa-db-ja.com

コマンドラインからWindowsマシンにJDK 8およびJRE 8をサイレントインストールする

複数のマシンでJDK環境を更新します。すべてのウィンドウは実行していますが、バージョンは異なります(XPまたは7)

そのために、正しいインストーラー(32/64ビット)を自動的に実行するスクリプトを作成しています。次のコマンドでインストーラーを実行してみました:

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"

これは、JDK/JRE 8がインストールされていないマシンで正常に機能します。しかし、私はいくつかの問題に直面しています:

  • JDK/JRE 8が既にインストールされている場合、インストーラーは単に何もしない(または再インストールする)のではなく、JDKとJREの両方をアンインストールします
  • 再起動が必要な場合、強制的に自動的に実行されます。インストールの完了後にスクリプトで実行する必要がある他のアクションがあるため、それを回避する必要があります。
  • インストーラーが実際に実行していることを示す詳細モード/ログファイルはありません

私はこれらのソースを見ました:

しかし、彼らは私に望みの結果を与えるものが欠けており、非常に混乱しているようです。

11
dagandlerx

私はJDKとJREに別々に取り組みます:

[〜#〜] jdk [〜#〜]は、レジストリエントリまたはインストーラexeが実行する他の処理に依存しません。 JDKをインストールします-withoutパブリックJRE-ちょうどoneマシンで

jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"

次に、結果のインストールを簡単に圧縮し、同じOSタイプの他のマシンにコピーして解凍します。

[〜#〜] jre [〜#〜]インストーラー(Oracleから個別にダウンロード)は、ここに記載されているオプションと構成ファイルを使用して実行できます。 http://docs.Oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html

設定がインストーラーexeと同じディレクトリにあると仮定すると、オプションINSTALLCFG="%cd%\jre-install-options.cfg" に使える。それ以外の場合、構成ファイルへのフルパスが必要です(INSTALLCFG = "c:\ path\to\jre-install-options.cfg")。したがって、次のようなものです(ログファイルを使用し、構成ファイルがexeと同じディレクトリにあると仮定します):

jre-8-windows-i586.exe INSTALLCFG="%cd%\jre-install-options.cfg" /s /L C:\TMP\jre-install.log

次のjre-install-options.txtが役立つと思われます。

INSTALL_SILENT=Enable
REBOOT=Disable
STATIC=Enable

構成ファイルのオプションは次のとおりです。 http://docs.Oracle.com/javase/8/docs/technotes/guides/install/config.html

最後の行の意味は次のとおりです。 http://docs.Oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html#static_installation

9
odoepner

/ sオプションで同様の問題に直面していました。 jdkのバグを見つけました https://bugs.openjdk.Java.net/browse/JDK-8033364 ヘルプまたはsのサポートが削除されたようです。/qnを試してください

jdk-8u92-windows-x64.exe/qn

1
Jitendra

サポートされているコマンドラインオプションは常に変更されているようです。最新の8 Update 131では、すべてのmsiexecスタイルオプションが機能しなかったため、それらを放棄する必要がありました。ダウンロードしたJavaバージョンのドキュメントを使用してインストーラーへのスイッチを作成しました。上記の回答に示すように、設定ファイルのオプションはコマンドラインでインストーラーに渡すことができます。 PackerでWin2016 Server AMIにJavaをインストールするために使用しました:

_Start-Process 'C:\Windows\Temp\jre-8u131-windows-x64.exe' `
  -ArgumentList 'INSTALL_SILENT=Enable REBOOT=Disable SPONSORS=Disable' `
  -Wait -PassThru
_

このコマンドは、デフォルトでシステムパスにJavaを追加しますが、インストールするものではありません。新しいPowerShellシェルを開くと、そのシェルのパスになります(_$env.path_)

真実の源:

http://docs.Oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.htmlhttp://docs.Oracle.com/javase/8/ docs/technotes/guides/install/config.html#table_config_file_options

1
Todd Lyons

JREサイレントインストールの場合:

start /wait msiexec /i "%~ Java8.40x64.msi " JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 RebootYesNo=No WEB_Java=1 /q

完全な投稿を見ることができます こちら

0
Klodi