0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[01] PowerShell実践例 ... OpenJDK のインストーラを作ろう

Last updated at Posted at 2021-07-03
本シリーズのトップページ
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 スクリプトの完成である.
 

以上.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?