本ページはプロモーションが含まれています

Java入門

Javaバージョン(version)確認、切り替えを3分解説!環境別の方法

トム

・都内自社開発IT企業勤務/javaのバックエンドエンジニア
/java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎

こんにちは、Javaでの開発経験が5年になる現役エンジニアブロガーです。

私がプログラミングを学び始めたころ、Javaのバージョン確認を怠ったばかりに、プロジェクトが動かないというエラーに遭遇し、解決までに3時間以上も費やしてしまった苦い経験があります。環境構築は、開発の入り口でありながら、多くの初学者がつまずきやすいポイントです。

「Javaのバージョンはどうやって確認するの?」

「WindowsとMacでコマンドは違う?」

「エラーが出てバージョンが確認できない…」

この記事は、そんなJavaのバージョン確認で悩んでいる方に向けて書きました。

この記事を読めば、Windows、Mac、Linuxといった主要な環境(OS)ごとに、Javaのバージョンを正確に確認する具体的なコマンドがわかります。さらに、なぜバージョン確認が開発において非常に重要なのか、そしてバージョンを切り替える方法や、確認できないときの対処法まで、網羅的に解説します。

もうバージョン違いのエラーで時間を無駄にするのはやめましょう。この記事を読んで、あなたのJava開発環境をスムーズに整える第一歩を踏み出しましょう。

Javaのバージョン確認が重要な理由

Javaのバージョン確認は、開発を始める前の「準備運動」のようなものです。この確認を怠ると、後で大きなトラブルにつながる可能性があります。Javaのバージョンを把握しておくことが重要な理由は、主に3つあります。

プロジェクトでの不具合を防ぐため

Javaのバージョン確認が重要な最大の理由は、プロジェクトでの予期せぬ不具合を防ぐためです。

例えば、あなたが参加するプロジェクトが「Java 11」で開発されているとします。もしあなたの開発環境が古い「Java 8」のままだった場合、Java 11で追加された新しい文法や機能(API)を使っているコードは、あなたの環境ではコンパイルエラーになってしまいます。

逆に、あなたの環境が最新の「Java 17」で、プロジェクトが「Java 11」だった場合、Java 17で非推奨または削除された機能を使おうとすると、実行時にエラーが発生するかもしれません。

このように、プロジェクトが指定するJavaのバージョンと、あなたの開発環境のバージョンを正確に合わせることは、不具合を未然に防ぐために不可欠です。

最新機能やセキュリティ更新の確認に役立つ

Javaは、現在も活発に開発が続けられているプログラミング言語です。約半年ごとに新しいバージョンがリリースされ、新しい機能が追加されたり、パフォーマンスが改善されたりしています。

例えば、Java 8で導入された「ラムダ式」や「Stream API」は、Javaの書き方を大きく変えました。最新のバージョン情報をキャッチアップしておくことで、より効率的でモダンなコードを書くスキルが身につきます。

また、バージョンアップには「セキュリティの脆弱性」の修正も含まれます。古いJavaのバージョンを使い続けることは、セキュリティリスクを抱え込むことにもつながりかねません。自分のJavaが最新のセキュリティパッチを適用しているか確認するためにも、バージョン確認は大切です。

チーム開発やツール連携でトラブルを避ける

現代の開発は、チームで行うのが一般的です。チーム全員が異なるJavaのバージョンを使っていたら、どうなるでしょうか。

「私の環境では動いたのに、あなたの環境では動かない」

このような問題が頻発し、開発効率が著しく低下します。チーム全員が使用するJavaのバージョンを統一することは、スムーズな共同作業の基本です。

さらに、Java開発ではEclipseやIntelliJ IDEAといったIDE(統合開発環境)や、Maven、Gradleといったビルドツールを使います。これらのツールも、特定のJavaバージョンとの互換性があります。使用するツールの要求するJavaバージョンと、実際にインストールされているバージョンが異なると、ツールが正しく動作しない原因になります。

これらの理由から、Javaのバージョンを正確に把握し、適切に管理することは、すべてのJava開発者にとって重要なスキルなのです。

Javaのバージョンを確認する方法(環境別)

Javaのバージョン確認は、どのOS(オペレーティングシステム)でも「コマンド」を使って行うのが一般的です。Windows、Mac、Linux、それぞれの環境での確認方法を具体的に見ていきましょう。

使用するコマンドは、基本的には共通です。

java -version

このコマンドは、現在「実行環境」として設定されているJava(JREまたはJDKの一部)のバージョンを表示します。

また、Javaのプログラムをコンパイル(コンピュータが理解できる形に変換)するためのバージョンを確認するコマンドもあります。

javac -version

java -versionjavac -version の結果は、通常一致しているべきです。もし異なっている場合、環境変数の設定に問題がある可能性があります。

それでは、各OSでの具体的な実行方法を説明します。

WindowsでのJavaバージョン確認コマンド

WindowsでJavaのバージョンを確認するには、「コマンドプロンプト」または「Windows PowerShell」を使います。

手順:

  1. コマンドプロンプト(またはPowerShell)の起動:
    • Windowsキー + Rキー を同時に押します。
    • 表示された「ファイル名を指定して実行」ダイアログに cmd (コマンドプロンプトの場合)または powershell (PowerShellの場合)と入力し、Enterキーを押します。
  2. コマンドの入力:開いた黒い画面(ターミナル)に、以下のコマンドを入力し、Enterキーを押します。java -version
  3. 実行結果の確認:以下のように、インストールされているJavaのバージョン情報が表示されます。java version "11.0.12" 2021-07-20 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode) この例では、java version "11.0.12" と表示されており、Java 11がインストールされていることがわかります。

同様に、javac -version も試してみましょう。

javac -version
javac 11.0.12

このように表示されれば、実行環境とコンパイル環境のバージョンが合っていると判断できます。

MacでのJavaバージョン確認コマンド

Mac(macOS)でJavaのバージョンを確認するには、「ターミナル」アプリを使います。

手順:

  1. ターミナル.appの起動
    • Commandキー + Spaceキー を同時に押して、Spotlight検索を開きます。
    • 「ターミナル」または「terminal」と入力し、表示された「ターミナル.app」を選択して起動します。
    • (または、Finderの「アプリケーション」>「ユーティリティ」フォルダの中にある「ターミナル.app」をダブルクリックします)
  2. コマンドの入力:開いたターミナル画面に、以下のコマンドを入力し、Enterキーを押します。java -version
  3. 実行結果の確認:Windowsと同様に、バージョン情報が表示されます。openjdk version "17.0.5" 2022-10-18 OpenJDK Runtime Environment (build 17.0.5+8-LTS) OpenJDK 64-Bit Server VM (build 17.0.5+8-LTS, mixed mode, sharing) この例では、OpenJDKのJava 17がインストールされていることがわかります。Macでも javac -version を実行して、コンパイラのバージョンも確認しておくと良いでしょう。javac -version javac 17.0.5

LinuxでのJavaバージョン確認コマンド

Linux(Ubuntu, CentOSなど)でも、Macと同様に「ターミナル」(端末)を使って確認します。

手順:

  1. ターミナルの起動:
    • デスクトップ環境(GNOME, KDEなど)のメニューから「端末」や「Terminal」を探して起動します。
    • 多くの場合、Ctrl + Alt + T のショートカットキーでも起動できます。
  2. コマンドの入力:ターミナル画面に、以下のコマンドを入力し、Enterキーを押します。java -version
  3. 実行結果の確認:実行結果が表示されます。openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) この例では、OpenJDKのJava 8(1.8.0)がインストールされていることがわかります。javac -version も忘れずに確認します。javac -version javac 1.8.0_312

どのOSでも、java -version コマンドで簡単にバージョンが確認できることを理解いただけたかと思います。

Javaのバージョンを切り替える方法

開発現場では、「プロジェクトAではJava 8を、プロジェクトBではJava 11を使う」といったように、複数のJavaバージョンを使い分ける場面がよくあります。

ここでは、複数のJavaバージョンがインストールされている場合に、使用するバージョンを切り替える基本的な方法を紹介します。

複数バージョンをインストールしている場合

PC内に複数のJavaバージョン(JDK: Java Development Kit)が共存していること自体は問題ありません。例えば、C:\Program Files\Java\ の中(Windowsの場合)や /Library/Java/JavaVirtualMachines/ の中(Macの場合)に、jdk-8jdk-11 のようなフォルダが複数存在する状態です。

問題は、java -version コマンドを実行したときに、OSが「どのJavaを使うか」を認識しているかです。この「どのJavaを使うか」を指定するのが「環境変数」です。

環境変数(PATH)の設定で切り替える

OSは、コマンドが実行されたときに、「PATH」という環境変数に登録されているディレクトリを順番に探しに行き、最初に見つかった実行ファイルを使用します。

また、Javaの場合は JAVA_HOME という環境変数も重要です。これは、Javaのインストールディレクトリ(jdk-11 のフォルダなど)を指し示すための変数です。

Windowsの場合:

  1. 「システムのプロパティ」から「環境変数」を開きます。
  2. システム環境変数(またはユーザー環境変数)で、JAVA_HOME という変数を探します。
  3. JAVA_HOME の値を、使用したいJavaバージョンのインストールディレクトリ(例: C:\Program Files\Java\jdk-11)に変更します。
  4. 次に、環境変数 Path を編集します。Path の中にある %JAVA_HOME%\bin という記述が、他のJava(例: C:\Program Files (x86)\Common Files\Oracle\Java\javapath など)へのパスよりも「上」(優先度が高い位置)にあることを確認します。
  5. 設定を変更したら、開いているコマンドプロンプトをすべて閉じ、新しく開き直して java -version を実行します。

Mac/Linuxの場合:

  1. ホームディレクトリにある設定ファイル(.bash_profile, .zshrc など、使用しているシェルによって異なります)を開きます。
  2. ファイル内に、以下のような記述を追加または修正します。export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH (※ JAVA_HOME に設定するパスは、ご自身の環境のJDKインストールパスに合わせてください)
  3. ファイルを保存し、ターミナルで source ~/.zshrc (ファイル名が .zshrc の場合)を実行するか、ターミナルを再起動します。
  4. java -version を実行して、バージョンが切り替わったことを確認します。

この方法は確実ですが、切り替えるたびに設定ファイルを編集する必要があり、少々面倒です。

SDKMAN!やjEnvを使って管理する方法(Mac/Linux向け)

MacやLinuxユーザーであれば、SDKMAN!jEnv といった「バージョン管理ツール」を使うことを強くおすすめします。

SDKMAN! の場合:

SDKMAN! は、Javaだけでなく、GroovyやKotlinなど、多くのJVM(Java仮想マシン)関連のSDKを管理できるツールです。

  • インストール後、利用可能なJavaのバージョン一覧を表示sdk list java
  • 特定のバージョンをインストールsdk install java 11.0.12-tem
  • 使用するバージョンを切り替えるsdk use java 11.0.12-tem (このターミナルセッションでのみ切り替わります)
  • デフォルトで使用するバージョンを指定sdk default java 11.0.12-tem

このように、コマンド数回で簡単にJavaのインストールと切り替えができます。

jEnv の場合:

jEnv は、Java専用のバージョン管理ツールです。

  • インストールされているJavaを追加jenv add /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
  • 使用するバージョンを切り替えるjenv global 11.0

これらのツールを使えば、JAVA_HOMEPATH の設定を直接編集する手間が省け、プロジェクトごとにJavaのバージョンを簡単に切り替えることが可能になります。

Javaのバージョンを確認できないときの対処法

java -version を実行したときに、バージョン情報がうまく表示されず、エラーになることもあります。ここでは、よくあるエラーと、その対処法について解説します。

「java: command not found」と表示された場合

java -version を実行して、以下のようなエラーメッセージが表示された場合の対処法です。

bash: java: command not found

または

'java' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

このエラーは、2つの原因が考えられます。

原因1:Java(JDK)がPCにインストールされていない

そもそもJavaがインストールされていなければ、java コマンドは実行できません。特にPCを購入した直後や、クリーンインストールした直後は、Javaが入っていないことがほとんどです。

対処法:

Oracleの公式サイトや、AdoptOpenJDK(現在はEclipse Temurinと呼ばれています)などから、JDK(Java Development Kit)をダウンロードし、インストールしてください。プログラミングを行う場合は、JRE(Java Runtime Environment)だけではなく、JDKをインストールする必要があります。

原因2:Javaはインストールされているが、パス(PATH)が通っていない

Javaはインストールしたものの、OSが java コマンドの場所(java.exe などの実行ファイルがある場所)を知らない状態です。これが「パスが通っていない」と呼ばれる状態です。

対処法:

「Javaのバージョンを切り替える方法」で説明した「環境変数(PATH)の設定」を正しく行う必要があります。JAVA_HOME を設定し、Path 環境変数に %JAVA_HOME%\bin(Windows)または $JAVA_HOME/bin(Mac/Linux)が追加されているかを確認し、設定してください。

パス設定のミスを確認する方法

パス設定がうまくいかない場合、以下の点を確認してみましょう。

  • JAVA_HOME のパスが正しいか?C:\Program Files\Java\jdk-11 のように、JDKのルートディレクトリを指していますか? C:\Program Files\Java\jdk-11\bin のように bin まで含めてしまうと、Path の設定 (%JAVA_HOME%\bin) と合わなくなり、結果として ...jdk-11\bin\bin を探しに行くことになり、失敗します。
  • Path の設定は正しいか?Path には、%JAVA_HOME%\bin と記述する必要があります。単に %JAVA_HOME% だけでは、OSは bin フォルダの中を探してくれません。
  • 環境変数の設定を反映させたか?Windowsで環境変数を設定した後、コマンドプロンプトを再起動しないと、古い設定が使われ続けます。必ずターミナルやコマンドプロンプトは開き直してください。
  • 他のJavaのパスが優先されていないか?Path 環境変数は、上から(または左から)順に参照されます。もし、%JAVA_HOME%\bin よりも先に、別の(例えば古い)Javaへのパス(C:\Program Files (x86)\Common Files\Oracle\Java\javapath など)が記述されていると、そちらが優先されてしまいます。新しく設定したパスが、最も優先される位置にあるか確認してください。

Javaが正しくインストールされているか確認する

インストール自体がうまくいっていない可能性もあります。

  • インストールディレクトリの確認:C:\Program Files\Java (Windows) や /Library/Java/JavaVirtualMachines (Mac) などの、標準的なインストール先ディレクトリに、該当するJDKのフォルダが存在するかを確認します。
  • 再インストール:設定を見直しても解決しない場合、一度Javaをアンインストールし、PCを再起動してから、再度インストールを試みるとうまくいくことがあります。インストーラが環境変数の設定を自動で行ってくれる場合もあります。

バージョン確認ができない原因の多くは「インストールされていない」か「パスが通っていない」のどちらかです。エラーメッセージをよく読み、落ち着いて環境変数の設定を確認しましょう。

まとめ:開発環境に合ったJavaバージョンを把握しよう

今回は、Javaのバージョンを確認する方法について、その重要性から、OS別の具体的なコマンド、バージョンの切り替え方法、そしてトラブルシューティングまで詳しく解説しました。

Javaのバージョン確認は、安定した開発環境を維持するための基本中の基本です。

  • java -version コマンドで、現在のバージョンを簡単に確認できます。
  • プロジェクトの要求バージョンと自分の環境を合わせることが、不具合を防ぐ鍵です。
  • SDKMAN! などのバージョン管理ツールを使うと、複数のバージョンの切り替えが格段に楽になります。
  • 「command not found」エラーが出たときは、インストールと「PATH」設定を疑いましょう。

開発プロジェクトに参加する前、あるいは新しいツールを導入する前には、必ずJavaのバージョンを確認する習慣をつけましょう。

  • この記事を書いた人
  • 最新記事

トム

・都内自社開発IT企業勤務/javaのバックエンドエンジニア
/java歴10年以上 ・首都圏在住30代
・資格:基本情報技術者/応用情報技術者/Java Silver/Python3エンジニア認定基礎

-Java入門