会社から支給はされているものの、BYODしたMacを日常的に使っているので放置気味のWindowsにJavaを入れてみたい。
スタートの状態では、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してみる
関係のないものがいっぱい見つかるが、まあ、だいたいなんでもある
- Eclipse Temurin JDK with Hotspot 20
- Azul Zulu JDK 20.30.11 (20.0.1), 64-bit
- Amazon Corretto 19
- Java SE Development Kit 20 ← Oracle JDKのようだ
- Microsoft Build of OpenJDK with Hotspot 17
- Liberica JDK 20
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は設定しないようだ。