本シリーズのトップページ |
---|
https://qiita.com/robozushi10/items/0b0605257ad39bc22895 |
はじめに
Windows 用の OpenJDK にはインストーラが存在しない.
とはいっても、手動でインストールする操作自体は単純である.
Windows PC で CI/CD をさせる際に OpenJDK のインストール自動化が必要になったので書き残しておく.
環境
Windows 10 Pro
PowerShell バージョン 6系
詳細
今回は、OpenJDK 15.0.1 をインストールする場合を例にする.
なお、手順の流れとしては次の 1〜 である.
1. OpenJDK 15.0.1 の Zip ファイルを Oracle のページから Download してくる.
2. 上記 1 で入手した Zip ファイルを展開(unzip)する
3. 展開(unzip) したデータを、ローカルのディスク (例: C:\OpenJDK-15.0.1\) に配置する
4. システム環境変数 JAVA_HOME に「上記 3 で配置したパス」を記す
5. システム環境変数 Path に「上記 3 で配置したパス + /bin」を記す
先に結論から
必須処理のみを書き出すと次のようになる.
これで OpenJDK 15.0.1 のインストールが完了する.
コードの処理の詳細は後述している.
## URL を変数 $RJDK に格納する
$RJDK = 'https://download.java.net/java/GA/jdk15.0.1/51f4f36ad4ef43e39d0dfdbaf6549e32/9/GPL/openjdk-15.0.1_windows-x64_bin.zip'
## Invoke-WebRequest が curl に該当する
Invoke-WebRequest -Uri $RJDK -OutFile openjdk-15.0.1.zip
## Expand-Archive はあらゆる圧縮データを展開するコマンドである.
## Linux での xdg-open が該当する
Expand-Archive openjdk-15.0.1.zip
## Cドライブ直下に「openjdk-15.0.1」というフォルダ名でコピーする
Copy-Item -Force -Recurse openjdk-15.0.1_windows-x64_bin C:\openjdk-15.0.1
## bash で例えると export JAVA_HOME="C:\openjdk-15.0.1" ということ
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\openjdk-15.0.1", "Machine")
## 既存の $Path を取り出す
$CUR = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
## システム環境変数「Path」の先頭を「C:\openjdk-15.0.1\bin」にして、変数 $NEXT に格納する
$NEXT = "C:\openjdk-15.0.1\bin;$CUR"
## システム環境変数「Path」を変数 $NEXT で上書きする
[System.Environment]::SetEnvironmentVariable("Path", $NEXT, "Machine")
解説
以下 1〜6 は、PowerShell ウインドウでの操作である.
1. 入手したい JDK の在処を記す
## URL を変数 $RJDK に格納する
$RJDK = 'https://download.java.net/java/GA/jdk15.0.1/51f4f36ad4ef43e39d0dfdbaf6549e32/9/GPL/openjdk-15.0.1_windows-x64_bin.zip'
2. curl を使って 1 をダウンロードする
ダウンロードした際のファイル名を openjdk-15.0.1.zip
とする
## Invoke-WebRequest が curl に該当する
Invoke-WebRequest -Uri $RJDK -OutFile openjdk-15.0.1.zip
3. 上記 2 で取得した openjdk-15.0.1.zip を展開する
openjdk-15.0.1.zip
を展開する.
## Expand-Archive はあらゆる圧縮データを展開するコマンドである.
## Linux での xdg-open が該当する
Expand-Archive openjdk-15.0.1.zip
4. Cドライブ直下にフォルダ「openjdk-15.0.1」を複製する
上記 3 を実行するとフォルダ「openjdk-15.0.1_windows-x64_bin
」が作成されている.
このフォルダを「C:\openjdk-15.0.1
」として複製する
## Cドライブ直下に「openjdk-15.0.1」というフォルダ名でコピーする
Copy-Item -Force -Recurse openjdk-15.0.1_windows-x64_bin C:\openjdk-15.0.1
5. システム環境変数として「JAVA_HOME」を「c:\openjdk-15.0.1」として上書き定義する
次の要領で実行する. 完了までに 30秒くらい要することもある.
## bash で例えると export JAVA_HOME="C:\openjdk-15.0.1" ということ
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\openjdk-15.0.1", "Machine")
6. システム環境変数「Path」の先頭に「C:\openjdk-15.0.1\bin」を追加する
次の要領で実行する. 完了までに 30秒くらい要することもある.
## 既存の $Path を取り出す
$CUR = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
## システム環境変数「Path」の先頭を「C:\openjdk-15.0.1\bin」にして、変数 $NEXT に格納する
$NEXT = "C:\openjdk-15.0.1\bin;$CUR"
## システム環境変数「Path」を変数 $NEXT で上書きする
[System.Environment]::SetEnvironmentVariable("Path", $NEXT, "Machine")
上記 1 から 6 を連結させれば PowerShell スクリプトの完成である.
以上.