MacBookでJava環境構築(M1/M2対応)JDK導入からVS Codeまで
CONTENTS
- 1 事前準備:macOS・CPU(Intel/Apple Silicon)・必要なもの
- 2 JDKを選ぶ:Javaのバージョンとディストリビューション
- 3 JDKをインストールする(公式/パッケージマネージャ)
- 4 ターミナルでJavaの動作確認をする(java/javac)
- 5 環境変数(JAVA_HOME・PATH)を設定する
- 6 VS CodeでJavaを動かす(拡張機能・Hello World)
- 7 IDEを選ぶ:IntelliJ IDEA・Eclipseの導入
- 8 よくあるトラブルと解決策(権限・複数JDK・ARM対応)
- 9 まとめ:MacBookでJavaを始める最短ルート
- 10 つまずいたら、現役エンジニアと一緒に解決しよう
まず、MacBook(Intel/Apple Silicon)でJava開発を始めるには、「CPUに合うJDKを入れる → ターミナルで動作確認する → JAVA_HOME/PATHで参照先を固定する」という順番が最短です。特にM1/M2などApple Siliconでは、ARM64(aarch64)版を選べるかが最初の分岐になります。
しかし、IDEの自動検出だけに頼ると、複数JDKが混在した瞬間に原因が追えなくなります。そこで本記事では、JDKの選び方からインストール、ターミナルでの確認、環境変数設定、VS Code/IDE導入までを一気通貫で整理します。
さらに、つまずきやすい「ARM64/x64の取り違え」「JAVA_HOMEとPATHのズレ」「IDEとターミナルの不一致」も、再インストールに頼らず切り分けできる形でまとめます。
事前準備:macOS・CPU(Intel/Apple Silicon)・必要なもの
まずは自分のMacBook環境(macOSバージョンとCPUアーキテクチャ)を把握し、以降の手順で迷わない前提をそろえます。特にApple Silicon(M1/M2)かIntelかで、選ぶJDKが変わります。
macOSバージョンの確認方法
まず、画面左上のAppleメニューから「このMacについて」を開き、macOSのバージョンを確認します。ここで表示されるバージョンは、導入できるJDKやIDEの対応可否に影響します。
一方で、インストールに失敗したときは不具合ではなく「対応OSの制約」であるケースもあります。そのため、入らない場合は公式の対応情報を優先して確認しましょう。
CPUがIntelかApple Silicon(M1/M2)かを確認する
次に「このMacについて」のChip(またはProcessor)欄を見て、IntelかApple(M1/M2など)かを確認します。ここが分かれば、JDKダウンロード時にx64(Intel)かARM64(Apple Silicon)を選び分けられます。
しかし、Apple Siliconでx64版を入れるとRosetta経由になったり、ツール側の検出がズレたりします。したがって、原則はARM64版を優先し、x64は「例外として必要なときだけ」に寄せるのが安全です。
必要なもの(権限・ネット接続・ターミナル/エディタ)
さらに、JDKやIDEのインストールには管理者権限が必要です。会社PCで制限がある場合は、自己判断で進めず事前に管理者へ確認してください。
また、ダウンロードが多いため、途中で回線が切れるとインストーラが壊れることがあります。そのため、取得元は公式サイトや信頼できる配布元に限定し、安定したネット接続で進めるのが安全です。
そして、操作の中心はターミナルです。IDEを使うとしても、java/javacの確認や環境変数の調整はターミナルが最短です。
JDKを選ぶ:Javaのバージョンとディストリビューション
まず、Javaは「どのバージョンを使うか」と「どの配布元(JDKディストリビューション)を使うか」で迷いやすい分野です。そこで、用途別に選び方を押さえます。
Javaのバージョン選定(LTSと最新版の考え方)
まず、迷ったらLTS(長期サポート)を選ぶのが基本です。なぜなら、教材や周辺ツールが追随していることが多く、つまずきにくいからです。
一方で、最新版は新機能を早く使える反面、ライブラリやツールが未対応のことがあります。したがって、学習で新機能を試したい場合に限定し、業務ではプロジェクト指定を優先すると安全です。
代表的なJDKディストリビューション(Oracle/Adoptiumなど)
次に、JDKはOracle JDKやOpenJDK系(例:Eclipse Temurin/Adoptium)などから選べます。多くの場合、機能差よりも「入手性」「運用のしやすさ」「チームで揃えやすいか」が差になります。
例えば、TemurinはmacOS(aarch64含む)の配布が分かりやすく、学習や開発用途で採用されやすい選択肢です。
しかし、同じJava 17でも配布元やビルドでパスや検出の挙動が変わることがあります。そのため、迷ったら「チームや教材と同じJDKを揃える」が最短です。
Apple Siliconでの注意点(ARM64ビルドの選択)
さらに、M1/M2ではARM64(aarch64)版を選ぶのが基本です。ARM64ならネイティブ実行になり、動作が安定しやすく、パフォーマンスも出やすいからです。
しかし、誤ってx64版を入れると、起動できない、またはRosetta依存になり、IDEや拡張機能の検出がズレる原因になります。したがって、まずはARM64で揃え、例外として必要な範囲だけx64を使う方針が管理しやすくなります。
JDKをインストールする(公式/パッケージマネージャ)
まず、JDKは「公式インストーラで確実に入れる方法」と「Homebrewで管理しやすく入れる方法」があります。どちらが正解というより、目的に合わせて選ぶのがポイントです。
公式サイトからインストール(PKG/DMG)
まず、配布元の公式ページで対象バージョンを選び、macOS向けインストーラをダウンロードします。このときCPUに合わせてARM64かx64を選ぶのが最重要です。
次に、ダウンロードしたインストーラを実行し、ウィザードに従って進めます。途中で許可やパスワード入力が求められたら、管理者権限で承認します。
そして、インストール先の詳細は後でターミナルから確認できるため、ここではまず正常に完了させることを優先しましょう。
Homebrewでインストール(管理・アップデート重視)
一方で、Homebrewを使うと、インストールとアップデートがコマンドで完結し、管理しやすくなります。Homebrew自体の導入・運用は公式手順に沿うのが安全です。
# 例:Temurin(JDK)をHomebrew Caskで入れる
brew install --cask temurin
# 導入確認
java -version
javac -version
ただし、複数バージョンを入れると「どれが優先されているか」を理解する必要があります。そのため、後述のwhichやJAVA_HOME確認をセットで行うと迷いにくくなります。
複数JDKを併用する場合の方針
さらに、プロジェクトによってJava 8/11/17/21などが混在するのは珍しくありません。そこで基本方針は「標準JDK」と「案件用JDK」を分け、必要に応じてJAVA_HOMEを切り替えることです。
しかし、落とし穴は「IDE設定」「Maven/Gradle設定」「環境変数」の三箇所で参照JDKが分かれうる点です。したがって、切り替えは1箇所だけで完結しない前提を持っておくと、ハマりにくくなります。
ターミナルでJavaの動作確認をする(java/javac)
まず、インストール後はIDEを入れる前に、ターミナルでランタイムとコンパイラが正しく動くかを確認します。なぜなら、IDEに問題があるのかJDKに問題があるのかを即座に切り分けできるからです。
java -versionでランタイム確認
まずターミナルを開いて、java -versionを実行します。バージョン情報が表示されれば、Java実行環境としては動作しています。
さらに、表示内容ではバージョン番号だけでなく、配布元やアーキテクチャ相当の情報も確認します。Apple SiliconならARM64に合うJDKを入れた前提を崩していないか、ここで疑えます。
javac -versionでコンパイラ確認
次に、javac -versionを実行します。ここでバージョンが出れば、開発に必要なツール一式が揃っています。
しかし、javaは動くのにjavacが見つからない場合、JRE相当を参照している、またはPATHが別のJavaを指している可能性があります。そのため、ここで止めて切り分けるのが正解です。
(任意)簡単なコンパイルと実行で最終確認
さらに、Hello Worldまでターミナルで通しておくと、IDE導入は「快適化の段階」になります。したがって、次の最小コードで最終確認します。
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
# コンパイル → 実行
javac HelloWorld.java
java HelloWorld
もし失敗する場合は、ファイル名とpublic class名の不一致が典型です。そのため、まず大文字小文字まで一致しているか確認しましょう。
環境変数(JAVA_HOME・PATH)を設定する
まず、多くの場合はJDKを入れれば動きます。しかし、複数JDKの切り替えやツール連携のために、JAVA_HOMEとPATHを理解しておくとトラブルに強くなります。
JAVA_HOMEとPATHの役割
まず、JAVA_HOMEは「どのJDKを使うか」の基準点で、多くのツールがこれを見てJavaを探します。対してPATHは「どのコマンドが優先されるか」の探索順です。
しかし、JAVA_HOMEとPATHがズレると「設定しているつもり」と「実際に動いているjava」が食い違います。したがって、設定後は必ず確認までセットで行います。
macOSでの一般的な設定場所(zshrc/bash_profile)
次に、macOSの標準シェルは多くの場合zshなので、設定は~/.zshrcに追記するのが一般的です。bashの場合は~/.bash_profileなどが対象になります。
さらに、設定ファイルを編集しただけでは反映されません。そのため、ターミナルを再起動するか、sourceで読み直して反映します。
/usr/libexec/java_homeを使った安全な設定例
さらに、macOSにはインストール済みJDKの場所を解決する仕組みがあり、固定パスを書かずに運用できます。これにより、アップデートや再インストールでもブレにくくなります。
# zshの場合(例):~/.zshrc に追記する
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH="$JAVA_HOME/bin:$PATH"
# 反映
source ~/.zshrc
また、複数バージョンを入れている場合は、一覧表示で把握してから切り替えると安全です。
# インストール済みJDK一覧
/usr/libexec/java_home -V
設定後の確認(echo/which/java)
最後に、設定後は次の順で確認します。これで「壊れにくい環境」になります。
echo $JAVA_HOME
which java
which javac
java -version
javac -version
しかし、whichの結果が想定外ならPATHの順序が原因です。そのため、設定ファイル内でPATHを追加した位置を見直し、既存のPATHを壊していないかも確認してください。
VS CodeでJavaを動かす(拡張機能・Hello World)
まず、軽量に始めたい場合はVS Codeが便利です。拡張機能を入れるだけで補完・実行・デバッグが一通りそろいます。
必要な拡張機能(Extension Pack for Java)
まず、VS Codeの拡張機能で「Extension Pack for Java」をインストールします。公式Marketplaceのページを基準にすると迷いにくいです。
しかし、拡張機能が入っていてもJDKが見つからない場合は、拡張の問題ではなくJDK検出(JAVA_HOME/which)の問題であることが多いです。したがって、先にターミナル確認を済ませておくとスムーズになります。
プロジェクト/ファイル作成の最小例
次に、作業用フォルダを作ってVS Codeで開き、HelloWorld.javaを作成します。クラス名とファイル名が一致していないとコンパイルエラーになるため、ここは必ず合わせます。
実行方法(Run/Debugまたはターミナル)
さらに、VS CodeではRun/Debugで実行できます。一方で、うまく動かないときは内蔵ターミナルからjavac/javaで実行して切り分けします。ターミナルで動くなら、原因はVS Code側の設定に寄っています。
JDKが見つからない場合の設定ポイント
まず、ターミナルでjava -versionが期待どおりか確認します。次に、JAVA_HOMEとwhichの参照先を見ます。
それでも解決しない場合は、VS Code設定でJDKパスを手動指定します。ただし、手動指定はアップデートでパスが変わると再設定が必要になるため、可能ならJAVA_HOME側で安定させるのがおすすめです。
IDEを選ぶ:IntelliJ IDEA・Eclipseの導入
まず、本格開発ではIDEが生産性に直結します。代表格はIntelliJ IDEAとEclipseです。
IntelliJ IDEAの導入手順と初期設定の要点
ここは注意点があります。以前はCommunityとUltimateが別配布でしたが、2025.3以降は「統合配布」のIntelliJ IDEAに一本化されています。無料で使えるコア機能は維持されつつ、サブスクリプションで高度機能がアンロックされる形です。
したがって、導入はJetBrains公式ガイドに沿って進め、プロジェクト作成時にProject SDK(参照JDK)を必ず確認してください。
Eclipseの導入手順とワークスペースの考え方
一方で、Eclipseはワークスペース(作業領域)の概念があります。ワークスペースの場所を見失うと「プロジェクトが消えたように見える」ため、分かりやすい場所を選ぶのが安全です。
また、チーム開発ではソースはGitで管理し、ワークスペースはローカル作業領域として割り切るとトラブルが減ります。
IDEが参照するJDKの確認・切り替え
最後に、IDEは独自にJDKを指定でき、ターミナルのJAVA_HOMEと一致しないことがあります。したがって、詰まったら「IDEのJDK設定」「ターミナルのJAVA_HOME」「which/java -version」の三点セットで確認しましょう。
よくあるトラブルと解決策(権限・複数JDK・ARM対応)

まず、MacでのJava環境構築はつまずきポイントが定番化しています。そこで症状別に原因と対処を先回りでまとめます。
権限/セキュリティ関連(Gatekeeper・実行許可)
もしダウンロードしたインストーラやアプリが開けない場合、macOSのGatekeeperが原因のことがあります。したがって、システム設定のセキュリティ関連でブロック解除を行い、公式サイト入手であることを再確認してください。
javaが見つからない・バージョンが意図しない(PATH/JAVA_HOME)
まず、which javaで参照先を確認し、次にjava -versionで実際のバージョンを見ます。意図しない古いJavaが動く場合は、PATHの探索順で古いjavaが優先されている可能性があります。
そのため、JAVA_HOMEを正しく解決し、PATHに$JAVA_HOME/binを適切な順序で追加します。設定後はターミナル再起動(またはsource)で反映し、再確認してください。
複数JDKが競合する(IDE/ターミナルで不一致)
しかし、ターミナルではJava 21なのにIDEではJava 17になる、のような不一致は頻発します。これはIDEが独自のJDK設定を持つためで、ターミナル設定だけ直しても解決しません。
したがって、プロジェクト設定のJDK指定を確認し、必要ならプロジェクトごとに切り替えます。さらに、Maven/Gradleの設定でtoolchainやsource/target指定がないかも合わせて確認すると再発防止になります。
Apple Silicon(ARM)対応の落とし穴(x64選択・Rosetta)
最後に、M1/M2でx64のJDKやIDEを入れると、動かないかRosetta依存になります。動いたとしても周辺ツールがARM前提だと不整合が起きやすいです。
そのため、基本はARM64対応のJDKとツールで揃え、x64が必要な場合だけRosettaを使う方針が安定します。
まとめ:MacBookでJavaを始める最短ルート
まず、最短ルートは「CPUとmacOSを確認 → LTSのARM64対応JDKを導入 → ターミナルでjava/javac/HelloWorldを確認」です。この順番を守るだけで、つまずきの大半は回避できます。
さらに、VS Codeで軽量に始めるならExtension Pack for Javaを入れ、IDEを使うなら「IDEが参照するJDK」を必ず確認しましょう。
そして、複数JDKが必要になったら、JAVA_HOMEとIDE設定の両方で切り替える意識を持つと、長期的に一番の時短になります。
また、関連知識として「Javaの全体像」や「PATHの考え方」を押さえておくと、環境トラブルの原因が見えやすくなります。
つまずいたら、現役エンジニアと一緒に解決しよう
この記事で扱ったは、独学だと細部で詰まりやすい分野です。さらに理解を深めたい方は、Zerocodeで実務直結の学習を進めてみませんか。
コード添削・詰まり解消を丁寧にサポート。
Java/SQL/Spring Bootを体系的に習得。
現場で刺さる成果物づくりを伴走。
時間と場所を選ばず学べます。