Windowsの「パス」を理解する — 「内部コマンドまたは外部コマンドとして認識されていません」を解決する
この記事の内容
- 「パス」とは何か、なぜコマンドが見つからないのかを解説します
- Windowsがコマンドを探す仕組みを理解します
- 環境変数のPATHを確認・編集する手順を説明します
- 絶対パス・相対パス・カレントディレクトリの違いを整理します
- JavaなどをインストールしたあとにPATHを通す具体的な手順を紹介します
コマンドが「見つからない」とはどういうことか
コマンドプロンプトで java と入力したとき、次のようなエラーが表示されることがあります。
このエラーの意味は「java というコマンドの実体(プログラムファイル)が見つからなかった」ということです。
コマンドを実行するとき、Windowsはどこかの場所にある実行ファイル(.exe)を探して起動しています。たとえば cmd と打つと、裏では C:\Windows\System32\cmd.exe が見つかって実行されています。この「どこを探すか」を決める設定が PATH(パス) という環境変数です。
環境変数「PATH」とは
Windowsには「環境変数」と呼ばれる設定値の一覧があります。その中の PATH という変数に、コマンドを探すフォルダの一覧が登録されています。
コマンドプロンプトで set と入力すると、設定されている環境変数を一覧表示できます。
set
表示された中に Path=... という行があり、セミコロン(;)区切りで複数のフォルダが並んでいます。Windowsはここに列挙されたフォルダを順に探して、コマンドに対応する実行ファイルを見つけたら起動します。
たとえば ping コマンドは C:\Windows\System32\ping.exe という実体があり、C:\Windows\System32 がPATHに登録されているため、どのフォルダにいても ping と打つだけで実行できます。
PATHを確認・編集する手順
1. システムのプロパティを開く
スタートボタンから「システム」と検索し、コントロールパネルの「システム」を開きます。左側メニューから 「システムの詳細設定」 をクリックします。
2. 環境変数の画面を開く
「システムのプロパティ」ウィンドウの下部にある 「環境変数」 ボタンをクリックします。
3. PATHを編集する
環境変数の画面には2つのセクションがあります。
- ユーザー環境変数 — ログイン中のユーザーだけに適用されます
- システム環境変数 — すべてのユーザーに共通で適用されます
システム環境変数の一覧から Path を選択し、「編集」 をクリックします。登録されているフォルダの一覧が表示されます。
4. 新しいパスを追加する
「新規」をクリックし、追加したいフォルダのパスを貼り付けます。たとえばJavaをインストールした場合、java.exe が存在するフォルダ(例:C:\Program Files\Java\jdk-XX\bin)を追加します。
OKで閉じたあと、必ず新しいコマンドプロンプトを起動してください。すでに開いているコマンドプロンプトには設定変更が反映されません。
コマンドが見つかる順番
コマンドを実行すると、Windowsは次の順番でコマンドを探します。
- カレントディレクトリ(現在のフォルダ) — 今いる場所の中を探します
- PATHに登録されたフォルダ — 一覧に登録された場所を順に探します
また、場所を直接指定してコマンドを実行することもできます。
絶対パスで実行する
ドライブのルート(C:\)から始まる完全な場所を指定します。
C:\Program Files\Java\jdk-XX\bin\java.exe
どのフォルダにいても、必ずこの場所の実行ファイルを起動します。フォルダをShiftキーを押しながら右クリックし「パスとしてコピー」を使うと、フルパスを簡単にコピーできます。
相対パスで実行する
現在いる場所から見た相対的な位置を指定します。
.\java\bin\java.exe
.(ドット)は「今いる場所」を意味し、..(ドット2つ)は「1つ上のフォルダ」を意味します。
..\java.exe ← 1つ上のフォルダにある java.exe を実行
「%SYSTEMROOT%」のような書き方について
PATHの一覧をよく見ると、%SystemRoot%\System32 のような書き方があります。これは環境変数を参照する書き方で、%SystemRoot% は C:\Windows に展開されます。
SystemRoot という環境変数には C:\Windows がセットされているため、%SystemRoot%\System32 は C:\Windows\System32 と同じ意味になります。このような仕組みによって、Windowsの重要なフォルダが最初からPATHに登録されており、ping や cmd などの基本コマンドがどこでも使えるようになっています。
よくあるケース:Javaをインストールしたのに実行できない
JavaをインストールしたのにコマンドプロンプトでJavaが実行できない場合は、PATHが通っていないことがほとんどです。次の手順で解決できます。
- Javaをインストールしたフォルダを確認する(例:
C:\Program Files\Java\jdk-XX\bin) - そのフォルダに
java.exeがあることを確認する - 上記の手順でシステム環境変数の
Pathにそのフォルダを追加する - 新しい コマンドプロンプトを開く
java -versionなどを実行して動作を確認する
まとめ
- PATH(パス) とは、コマンドを探す場所の一覧を定義した環境変数です
- Windowsはコマンドを実行するとき、カレントディレクトリとPATHに登録されたフォルダを順に探します
- 場所を直接指定して実行する方法として、絶対パスと相対パスがあります
- よく使うコマンドは、そのコマンドが入ったフォルダをPATHに追加しておくことで、場所を問わず名前だけで実行できるようになります
- PATHを変更した場合は、新しいコマンドプロンプトを起動し直す必要があります
「内部コマンドまたは外部コマンドとして認識されていません」というエラーが出たときは、まずPATHを確認・追加することを試してみてください。