Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

WindowsにJavaをインストールする

会社から支給はされているものの、BYODしたMacを日常的に使っているので放置気味のWindowsJavaを入れてみたい。

スタートの状態では、JDKはどこにもないし、JAVA_HOMEも設定されていない。

ひとむかし前であれば、おもむろにOracleのサイトに行き、インストーラー付きのものをダウンロードして入れれば良かったのだが、いまやJavaディストリビューションは多彩だ。きしださんのブログを「きしだ Java インストール」とかでググり、好きなもののインストーラーをダウンロードして実行すれば良い。

良いのだが、この記事で出てくるwingetを試してみたい。wingetはまだ出来て何年も経っていない、Microsoft自身がやってるコマンドラインのパッケージマネージャーらしい。

まず、wingetとだけ打ってみる

PS C:\Users\tambara > winget
v1.5.2201 の Windows パッケージ マネージャー
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用法: winget [<コマンド>] [<オプション>]

使用できるコマンドは次のとおりです:
  install    指定されたパッケージをインストール
  show       パッケージに関する情報を表示します
  source     パッケージのソースの管理
  search     アプリの基本情報を見つけて表示
  list       インストール済みパッケージを表示する
  upgrade    利用可能なアップグレードの表示と実行
  uninstall  指定されたパッケージをアンインストール
  hash       インストーラー ファイルをハッシュするヘルパー
  validate   マニフェスト ファイルを検証
  settings   設定を開くか、管理者設定を設定する
  features   試験的な機能の状態を表示
  export     インストールされているパッケージのリストをエクスポート
  import     ファイル中のすべてのパッケージをインストール
  pin        パッケージ ピンの管理

特定のコマンドの詳細については、そのコマンドにヘルプ引数を渡します。 [-?]

次のオプションを使用できます。
  -v,--version              ツールのバージョンを表示
  --info                    ツールの一般情報を表示
  -?,--help                 選択したコマンドに関するヘルプを表示
  --wait                    終了する前に任意のキーを押すプロンプトをユーザーに表示します
  --logs,--open-logs        既定のログの場所を開く
  --verbose,--verbose-logs  WinGet の詳細ログを有効にする
  --disable-interactivity   対話型プロンプトを無効にします

その他のヘルプについては、次を参照してください: https://aka.ms/winget-command-help

どこかで見たようなサブコマンドたちである。バージョンが1未満だとプレビュー版なのでアップデートしなければならないらしいが、1.5と書いてあるので大丈夫だろう。使ってみよう。

winget listしてみると、インストール済みのソフトウェア達が表示される。これは別にwingetでインストールしたものとは限らないみたい。秀丸エディタとか出てくる。

名前                                  ID                                    バージョン          利用可能 ソース
---------------------------------------------------------------------------------------------------------------
Ubuntu                                Canonical.Ubuntu.2204                 2204.2.33.0                  winget
Dolby Access                          DolbyLaboratories.DolbyAccess_rz1teb… 3.18.872.0
Lenovo Commercial Vantage             E046963F.LenovoSettingsforEnterprise… 10.2305.30.0
ELAN TrackPoint for Thinkpad          ELANMicroelectronicsCorpo.ELANTrackP… 24.121.18.0
Git                                   Git.Git                               2.36.0              2.42.0   winget
Google Chrome                         Google.Chrome                         > 116.0.5845.111             winget
秀丸エディタ (9.13)                   Hidemaru                              9.13

こんな感じだ。Gitがリストされていて、ここでバージョンアップ出来そうな雰囲気だ。やってみよう。

PS C:\Users\tambara > winget upgrade Git.Git
見つかりました Git [Git.Git] バージョン 2.42.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/git-for-windows/git/releases/download/v2.42.0.windows.1/Git-2.42.0-64-bit.exe
  ██████████████████████████████  58.3 MB / 58.3 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストーラーは管理者として実行するように要求するため、プロンプトが表示されます。
インストールが完了しました

なるほど。

では、さっそくここからJDKをインストールしてみよう。

winget searh javaしてみる

関係のないものがいっぱい見つかるが、まあ、だいたいなんでもある

IBM Semeruがなくて寂しかったが、winget search semeru したらちゃんと出てきた。

では、Temurinを入れてみることにする。

PS C:\Users\tambara > winget install EclipseAdoptium.Temurin.20.JDK
見つかりました Eclipse Temurin JDK with Hotspot 20 [EclipseAdoptium.Temurin.20.JDK] バージョン 20.0.2.9
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.2+9/OpenJDK20U-jdk_x64_windows_hotspot_20.0.2_9.msi
  ██████████████████████████████   166 MB /  166 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

なんだ、msiがダウンロードされるのか。ただし、GUIインストーラーは表示はされるものの触る必要はなく、勝手に閉じて完了した。

無事、javaコマンドが起動した

PS C:\Users\tambara > java -version
openjdk version "20.0.2" 2023-07-18
OpenJDK Runtime Environment Temurin-20.0.2+9 (build 20.0.2+9)
OpenJDK 64-Bit Server VM Temurin-20.0.2+9 (build 20.0.2+9, mixed mode, sharing)

PATHは設定されているけど、JAVA_HOMEはないみたい

PS C:\Users\tambara > $env:PATH
C:\Program Files\PowerShell\7;C:\Program Files\Eclipse Adoptium\jdk-20.0.2.9-hotspot\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;(以下略)
PS C:\Users\tambara> $env:JAVA_HOME

では、2つ目をインストールするとどうなるか。IBM Semeruを入れてみよう。

インストール完了後、java -versionしてみる

PS C:\Users\tambara > java -version
openjdk version "17.0.7" 2023-04-18
IBM Semeru Runtime Open Edition 17.0.7.0 (build 17.0.7+7)
Eclipse OpenJ9 VM 17.0.7.0 (build openj9-0.38.0, JRE 17 Windows 11 amd64-64-Bit Compressed References 20230418_439 (JIT enabled, AOT enabled)
OpenJ9   - d57d05932
OMR      - 855813495
JCL      - 9d7a231edbc based on jdk-17.0.7+7)

変わっちゃった。

PS C:\Users\tambara > $env:PATH
C:\Program Files\PowerShell\7;C:\Program Files\Semeru\jdk-17.0.7.7-openj9\bin;C:\Program Files\Eclipse Adoptium\jdk-20.0.2.9-hotspot\bin;C:\WINDOWS\system32;C:\WINDOWS;(以下略)
PS C:\Users\318535760>

たぶん、単にPATHの順番だな。SemeruもJAVA_HOMEは設定しないようだ。