Java21を以下のコマンドでインストールした際、インストール先のフォルダがC:\ProgramFiles\Java\jdk-21だった。
winget install --scope mchine oracle.JDK.21
なぜC:\ProgramFiles(x86)ではないのか、そもそもフォルダの違いが分からなかったのでChatGPTに聞いてみた。
結論
C:\ProgramFilesとC:\ProgramFiles(x86)の違いは、アプリの種類(32bitか64bit)。
| フォルダ | 用途 |
|---|---|
| C:\ProgramFiles | 64bitアプリ用 |
| C:\ProgramFiles(x86) | 32bitアプリ用 |
詳細
2つある理由
windows11(64bit版)は以下の64bitアプリと32bitアプリ(古いソフト)の両方を動かせる。
この2種類を分けるためにフォルダが分かれている。
C:\ProgramFiles(今の主流)
- 63bitアプリ専用
- 新しいソフトは基本ここに入る
- 例)
- Java21(今回のケース)
- Chorome(64bit)
- VisualStudio
など
C:\ProgramFiles(x86)
- 32bitアプリ専用
- 古いソフトウェアや32bitアプリ
- 「x86」は32bitのCPUアーキテクチャの名前
使い分け
Wondowsが自動で振り分ける
→ユーザが意識しなくてOK
| アプリ | インストール先 |
|---|---|
| 64bitアプリ | ProgramFiles |
| 32bitアプリ | ProgramFiles(x86) |
分ける必要性
32bitと64bitで以下が違うため、混ざると不具合が起きる
- 使用可能なDDL
- レジストリ
- 実行環境
参考