はじめに (対象読者・この記事でわかること)
この記事は、WindowsでJavaプログラミングを始めたいが、javac -versionコマンドが反応せず、コンパイルすらできない初学者の方を対象にしています。
記事を読むことで、JDKが正しくインストールされているかの確認方法、環境変数(PATH・JAVA_HOME)の意味と設定手順、そして「なぜコマンドが認識されないのか」を自分で診断・解決できるようになります。筆者も初めてJavaを勉強した際に同じ壁にぶち当たり、1時間以上堂々巡りした苦い経験があるので、同じ時間を無駄にしてほしくありません。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。 - Windowsでコマンドプロンプト(cmd)を開ける - エディタでHelloWorld.javaを作成できる
JDKとは?なぜ「javac」が必要なのか
Javaは「書いたらすぐ動く」言語ではありません。.javaファイルを実行可能な.classファイルへ変換(コンパイル)するためには、javacコマンドが必要です。javacはJDK(Java Development Kit)に含まれるコンパイラで、JDKがインストールされていないか、PATHが通っていないと「javacは内部コマンド・外部コマンドとして認識されていません」あるいは何も表示されない、という状態になります。つまり、JDKを正しくセットアップする=Javaプログラミングのスタートラインに立てるということです。
手順図解:JDKインストールから環境変数設定まで
ステップ1:現在の状態を調べる
- コマンドプロンプトを開き、以下を順番に実行します。
java -version javac -version-javaはJRE(ランタイム)の有無をチェック -javacはJDK(開発環境)の有無をチェック - どちらも「認識されません」または何も表示されない場合はJDK未インストールor環境変数未設定と判断できます。
ステップ2:JDKをインストールする
- Oracle JDKダウンロードページまたはOpenJDKへアクセス
- x64 Installer(Windows向け)をダウンロード
- インストーラを実行し、デフォルトの場所(
C:\Program Files\Java\jdk-XX)をメモしておく(後で使います) - インストール完了後、一旦コマンドプロンプトを閉じて再度開き
javac -versionを実行 → まだ反応がないはずです(PATHが通っていないため)
ステップ3:環境変数「PATH」を通す
- Windowsキー → 「環境変数」と入力 → システム環境変数の編集を選択
- システム環境変数エリアから「Path」を選択し編集
- 新規をクリックし、以下を追加(
XXはインストールしたバージョン)C:\Program Files\Java\jdk-XX\bin - 連続してOKを押して保存
- 新たにコマンドプロンプトを開き
javac -version→ バージョンが表示されればOK!
ステップ4(オプション):JAVA_HOMEを設定して後々楽をする
Tomcat、Gradle、Mavenなど多くのツールはJAVA_HOMEを参照します。
1. システム環境変数で新規を選択
2. 変数名:JAVA_HOME
変数値:C:\Program Files\Java\jdk-XX(\binは付けない)
3. OKを連打して保存
ハマりポイント:「なぜか既存のPathが効かない」
筆者がハマったのは、System PATHの末尾に既に別のJavaパスが残っていたケースです。
WindowsはPathを上から順に探索するため、古いJDKパスが優先され、新しいjavacが呼ばれないという現象が起きます。
解決策
- Path一覧を上からチェックし、古いJavaパスがあれば削除 or 新しいパスを上へ移動
- コマンドプロンプトで
where javacを実行 → 複数パスが表示されれば順序ミス - 修正後は必ず新しいコマンドプロンプトで再実行(キャッシュが残るため)
まとめ
本記事では、javac -versionが何も表示されない原因と、JDKの再インストール・PATH・JAVA_HOME設定を図解付きで解説しました。
- JDKは「開発者向け」でjavacが含まれている
- PATHを通す=
binフォルダまでの絶対パスをSystem環境変数に追加 - 古いPathが優先されると新しいjavacが呼ばれないので
whereコマンドで順序を確認
これでJavaのコンパイル環境は完璧です。次は、Visual Studio CodeやIntelliJ IDEAで実際にHelloWorldを実行してみましょう。以降、ビルドツール(Maven/Gradle)やLombok、Spring Bootなど発展的なテーマも順次記事にしていきます。
参考資料
