MEDIA

メディア

  1. TOP
  2. メディア
  3. プログラミング
  4. MacBookでJava環境構築(M1/M2対応)JDK導入からVS Codeまで

MacBookでJava環境構築(M1/M2対応)JDK導入からVS Codeまで

CONTENTS

まず、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で実務直結の学習を進めてみませんか。

現役エンジニア1on1

コード添削・詰まり解消を丁寧にサポート。

実務設計まで網羅

Java/SQL/Spring Bootを体系的に習得。

ポートフォリオ支援

現場で刺さる成果物づくりを伴走。

完全オンライン

時間と場所を選ばず学べます。

Join us! 未経験からエンジニアに挑戦できる環境で自分の可能性を信じてみよう 採用ページを見る→

記事監修

ドライブライン編集部

[ この記事をシェアする ]

記事一覧へ戻る