#1 Javaで学ぶ環境構築の基本
Javaは、長年にわたって企業システムや業務アプリケーションで使われ続けている定番の言語です。学習を始める人向けの教材も多く、環境構築の手順自体もパターンが確立されています。ただし、いざ自分のパソコンで試してみると、「コマンドが見つからない」「動くはずなのにエラーが出る」といった壁にぶつかる人が非常に多いのも事実です。この記事では、Javaを動かすための準備を、実際に出くわしやすいエラーメッセージも交えながら、じっくり解説していきます。
JDKのインストール
Javaのプログラムを書いたり実行したりするには、「JDK(Java Development Kit)」というソフトウェアをインストールする必要があります。JDKには、プログラムを実行可能な形に変換する「コンパイラ」や、実際にプログラムを動かす「実行環境」などがまとめて入っています。
OracleやAmazon(Amazon Corretto)、Eclipse(Eclipse Temurin)など、複数の団体・企業が無料でJDKを配布しています。中身の仕組みはほぼ共通しているので、どれを選んでも学習には支障がありません。迷った場合は、ライセンス周りがわかりやすく個人利用でも安心して使える「Eclipse Temurin」がおすすめです。バージョンは、サポート期間が長い「LTS版」(記事執筆時点では21など)を選んでおくと、後から情報を探すときも困りにくいでしょう。
環境変数の設定
Javaの環境構築で多くの人がつまずくのが、「JAVA_HOME」という環境変数の設定です。環境変数とは、パソコン全体で共有される「設定の一覧」のようなものです。JDKをインストールした場所を、この環境変数に登録しておくことで、どのフォルダからでもJavaのコマンドが使えるようになります。
設定できたか確認するには、ターミナルで次のコマンドを実行します。
java --version
ここで、実際によく表示されるエラーとその原因を具体的に見ていきましょう。
「'java' は、内部コマンドまたは外部コマンドとして認識されていません」
Windowsでjava --versionを実行したときに出る代表的なエラーです。これは、JDKのインストール自体はできていても、そのインストール先が「PATH」という環境変数に登録されていないために起こります。PATHとは、「コマンドを探しに行く場所のリスト」のようなもので、ここにJDKのbinフォルダ(例:C:\Program Files\Eclipse Adoptium\jdk-21\bin)が入っていないと、OSはjavaというコマンドをどこにも見つけられません。対処法は、システム環境変数の編集画面からPATHにこのフォルダを追加し、ターミナルを開き直すことです。ターミナルを再起動しないと反映されない点も、初心者がつまずきやすいポイントです。
「JAVA_HOME is not set」「JAVA_HOME is not defined correctly」
これはJavaコマンド自体のエラーというより、MavenやGradleといったビルドツールを使ったときに表示されることが多いメッセージです。これらのツールは、内部的にJAVA_HOMEという環境変数を参照して「どこのJDKを使えばいいか」を判断しています。PATHは通っているのにこのエラーが出る場合は、JAVA_HOMEという環境変数そのものが作成されていない(PATHへの追加とJAVA_HOMEの新規作成は別の作業です)ことが原因であるケースがほとんどです。JAVA_HOMEには、binフォルダの一つ上、つまりJDKのインストールフォルダそのもの(例:C:\Program Files\Eclipse Adoptium\jdk-21)を設定する点も間違えやすいので注意しましょう。
複数バージョンのJDKが共存しているときの落とし穴
学習を進めていくと、「新しいバージョンを試したくてもう1つJDKを入れた」というケースが出てきます。このとき、java --versionとjavac -versionで表示されるバージョンが食い違う、あるいはIDE上では動くのにターミナルからは動かない、といった現象が起こることがあります。多くの場合、原因はPATHに複数のJDKのパスが登録されていて、想定と違う方が先に見つかっているというシンプルな話です。焦らず、PATHに並んでいる順番と、それぞれのバージョンを一つずつ確認してみましょう。
ファイルを作って実行する
Javaでは、ファイル名とクラス名(プログラムの入れ物の名前)を必ず一致させる必要があります。例えばHello.javaというファイルには、Helloというクラスを書きます。実行する際は、まずコンパイルしてからクラスファイルを実行するという2段階の手順を踏みます。
javac Hello.java
java Hello
「エラー: クラスHelloはpublicであり、ファイルHello.javaで宣言する必要があります」
これはjavacでコンパイルしたときによく出るエラーで、ファイル名とクラス名が一致していないことをJavaがそのまま教えてくれています。hello.java(小文字)というファイルにHello(大文字始まり)というクラスを書いてしまった、といった綴りの違いも原因になります。エラーが出たら、まずファイル名とクラス名のスペルと大文字・小文字を見比べてみましょう。
「エラー: メイン・クラスHelloが見つからないかロードできません」
コンパイルは成功したのに、java Helloを実行したときにこのエラーが出ることがあります。多くの場合、コンパイルで生成されたHello.classファイルとは別のフォルダでjavaコマンドを実行してしまっているのが原因です。Javaは指定された名前の「クラスファイル」を今いる場所(または指定したクラスパス)から探しに行くため、フォルダを移動してしまうと見つけられなくなります。cdコマンドで.classファイルがあるフォルダに移動してから実行し直してみてください。
つまずきやすいポイント・よくある質問
JDKとJREって何が違うの?
JRE(Java Runtime Environment)は「Javaのプログラムを動かすためだけ」の環境で、JDK(Java Development Kit)はそのJREに加えて、プログラムを書いてコンパイルするための道具一式が入ったものです。これからJavaのコードを書いて学ぶ人は、JREだけでは足りず、JDKをインストールする必要があります。「JREだけ入れたのにjavacが使えない」という質問をよく見かけますが、これはJREにコンパイラが含まれていないためで、正常な動作です。
OracleとEclipse TemurinとCorretto、結局どれを選べばいい?
中身の実行エンジンはどれも同じ「OpenJDK」という土台をベースにしており、日々の学習用途であればどれを選んでも大きな違いは出ません。強いて言うなら、Oracle製は商用利用時のライセンス条件を意識する必要がある場面があるため、個人学習中はライセンス面で気にすることが少ないEclipse TemurinやAmazon Correttoを選ぶ人が多い印象です。どれか一つに正解があるというより、「情報が探しやすいものを選ぶ」くらいの気軽さで問題ありません。
エディタは何を使えばいい?
結論から言うと、これも「絶対の正解」はありません。ただ、傾向として次のような使い分けがよく見られます。書き始めたばかりで、まずは軽い環境でコードに慣れたいという場合は「Visual Studio Code」に拡張機能を追加する形が扱いやすいでしょう。ある程度規模の大きいプログラムを書くようになったら、補完やエラー検知が強力な「IntelliJ IDEA」(無料のCommunity版もあります)を使う人が多くなります。どちらも十分に実績のあるツールなので、まずは触ってみて自分に合う方を選ぶのがよいと思います。
バージョンはどれを使えばいい?
Javaは半年ごとに新しいバージョンが出ますが、その中でも数年間サポートが続く「LTS(Long Term Support)」版が学習の土台として安心です。最新の機能を追いかけたいのでなければ、教材や参考書が対応しているLTSバージョンに合わせておくと、情報を探すときに迷いにくくなります。
Javaならではの注意点
他の言語と違い、Javaは「ファイル名とクラス名の一致」というルールが厳格に決まっています。ここでつまずく初心者が非常に多いので、エラーが出たら、まずファイル名とクラス名が同じ綴り・大文字小文字になっているかを確認してみましょう。また、Javaは「書いたコードをコンパイルしてから実行する」という2段階の流れを常にとる言語です。この特性のおかげで、実行前の段階で文法的な間違いの多くを検出できるという利点がありますが、慣れないうちは「なぜ2回もコマンドを打つのか」と感じるかもしれません。
他の言語の環境構築と比べて
PythonやJavaScriptのように、書いたコードをそのまま実行できる「スクリプト言語」に慣れていると、Javaの「コンパイルしてから実行する」という手順や、「ファイル名とクラス名を揃える」という決まりごとは、少し手間に感じられるかもしれません。ただ、これはJavaが悪いというより、設計思想の違いによるものです。事前にコンパイルを挟むことで、実行する前に多くのミスをあらかじめ検出できるため、大人数で長期間保守するような大規模なシステム開発との相性がよいとされています。逆に、手軽にすぐ試したいというときには、スクリプト言語の身軽さが活きる場面もあります。どちらが優れているというより、目的によって向き不向きがあると捉えておくとよいでしょう。
まとめ
Javaの環境構築は、JDKのインストールと環境変数の設定という2つのステップがやや複雑に感じられるかもしれません。特にJAVA_HOMEやPATHまわりのエラーは、原因さえわかってしまえば対処は難しくありません。「PATHが通っていない」「JAVA_HOMEが設定されていない」「実行する場所がずれている」といった典型パターンを覚えておけば、次に似たエラーに出会っても落ち着いて対応できるはずです。一度設定してしまえば、あとはjavacでコンパイルしjavaで実行するというシンプルな流れの繰り返しです。焦らず一つずつ確認しながら、自分の環境を整えていきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。
コメント
コメントを投稿