「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

PATHが通っていない

pointこの用語のポイント

pointファイル名を指定しても実行できない状態だよ

point「ここを探すぜ」リストに実行ファイルのある場所が書いてないよ

pointコンピュータさんが「そのファイル、どこにあるの?」ってなっているよ

スポンサーリンク

簡単に書くよ

PATHが通っていない(読:パスガトオッテイナイ)とは

主にプログラミング……の前の環境構築の話で出てくる表現のひとつ
であり

コンピュータさんが持っている「ここを探すぜ」リストにファイル(実行ファイル)のある場所が書かれていないから、(ファイルの置いてある場所を指定せず)ファイル名を指定しただけではファイルが見つからなくて実行できない状態のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

実行ファイル
PATH
PATHを通す


について説明します。
特に「PATHを通す」については、かなりガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

実行ファイルは「プログラムファイル」です。
べちべちっ!とダブルクリックすると、お仕事を始めます。
Windowsの場合)拡張子は「.exe」であることが多いです。

PATHが通っていない

PATHは「ファイルフォルダの場所(と名前)を示す情報」です。

PATHが通っていない2

PATHは

C:\Windows\system32\



/usr/bin/perl

のような形で書きます。

Windows系では「\(円マーク、バックスラッシュ」区切りで階層を表現します。
例えば

C:\Windows\system32\



「C:」ドライブの中にある「Windows」フォルダの中にある「system32」フォルダ

を表しています。

PATHが通っていない3

UNIXLinuxとかMacとか)では「/スラッシュ」区切りで階層を表現します。
例えば

/usr/bin/perl



「usr」フォルダの中にある「bin」フォルダの中にある「perl」という名前のファイル

の意味になります。

PATHが通っていない4

基本的な考え方は住所と同じです。
位置を示す情報です。
左に行くほど大きなくくりになります。

PATHを通す」は「『ここを探すぜ』リストに(実行ファイルのある)場所を書き加えること」です。

……と、いきなり言われても何がなんだかサッパリ分かりませんよね。
大丈夫です。
順を追って説明します。

その代わり、説明がクソ長いです。
適度に休憩をはさみながら読み進めてください。

それでは、いってみましょう。

コンピュータさんに「この実行ファイルを動かせ!」と命令するときのファイルの指定方法は2つあります。
それは

1.実行ファイルの「置いてある場所」と「ファイル名」を伝えるやり方
2.実行ファイルの「置いてある場所」に移動して「ファイル名」を伝えるやり方


の2つです。

1の、実行ファイルの置いてある場所とファイル名を伝えるやり方では

「置いてある場所」にある「ファイル名」を動かせ!

という命令をコンピュータさんにします。

例えば、そうですね。
「C:」ドライブの中にある「test」フォルダの中に「piyota.exe」というファイルが あったとしましょう。

PATHが通っていない5

これをPATHとして表現すると

C:\test\piyota.exe

に なります。

1のやり方で「『piyota.exe』を動かせ!」と命令する場合は

「C:\test\piyota.exe」を動かせ!

のように書くのです。
そうすると、コンピュータさんは

「C:\test\」にある「piyota.exe」を動かせってことね

と理解してくれます。

PATHが通っていない6

2の、実行ファイルの置いてある場所に移動してファイル名を伝えるやり方では

「置いてある場所」に移動しろ!
「ファイル名」を動かせ!


という2つの命令をコンピュータさんにします。

ここで大事なポイントがあります。
それは

コンピュータさんは、場所を指定しないと今いる場所を探す

です。
覚えておいてください。

例えば、そうですね。
「C:」ドライブの中にある「test」フォルダの中に「piyota.exe」というファイルが あったとしましょう。

PATHが通っていない7

これをPATHとして表現すると

C:\test\piyota.exe

に なります。

2のやり方で「『piyota.exe』を動かせ!」と命令する場合は

「C:\test\」に移動しろ!
「piyota.exe」を動かせ!


のように書くのです。
そうすると、コンピュータさんは

「C:\test\」に移動して、そこにある「piyota.exe」を動かせってことね

と理解してくれます。

PATHが通っていない8

繰り返しになりますが

コンピュータさんは、場所を指定しないと今いる場所を探す

です。
自分が今「C:\test\」にいれば「C:\test\」にある「piyota.exe」(C:\test\piyota.exe)を探します。
「C:\hoge\」にいれば「C:\hoge\」にある「piyota.exe」(C:\hoge\piyota.exe)を探します。

PATHが通っていない9

ふぃ~、長くなってきましたね。
ここまでの説明は、なんとなく分かったでしょうか。
ピンと来ていない人は、適度に休憩をはさみつつ、頑張って復習してください。
ここまでの内容も結構、大事です。

さて、先ほど

コンピュータさんは、場所を指定しないと今いる場所を探す

と説明しました。

この説明ですが、実はちょっとだけウソを書いています。
本当は

コンピュータさんは「ここを探すぜ」リストに書いてある場所を探す

のです。

コンピュータさんは自分の中に「もし探す場所を指定されなかったら、ここを探すぜ!」なリストを持っています。
実行ファイルのファイル名しか指定されなかったときは「ここを探すぜ」リストに書いてある場所の中にその実行ファイルがないかを探してくれます。
今いる場所を探してくれるのは「ここを探すぜ」リストに「今いる場所」と書いてあるからです。

PATHが通っていない10

例えば、そうですね。
「ここを探すぜ」リストに

1.今いる場所(「.」と書くと「今いる場所」の意味になります)
2.C:\test\
3.C:\hoge\


と書いてあったとしましょう。

PATHが通っていない11

この状態でピヨ太君が「『piyota.exe』を実行せよ!」と命令しました。

PATHが通っていない12

おっと、ピヨ太君はファイル名しか指定していませんね。
これでは「piyota.exe」がどこにあるか分かりません。

このような場合、コンピュータさんは「ここを探すぜ」リストを見て

1.今いる場所のpiyota.exe
2.C:\test\piyota.exe
3.C:\hoge\piyota.exe


のどれかがないか探してくれます。

PATHが通っていない13

つまり

「ここを探すぜ」リストに場所を書いておくと、その場所にある実行ファイルはファイル名を指定するだけで実行できるようになる

のです。

それを踏まえて「ここを探すぜ」リストに(実行ファイルのある)場所を書き加えるのが「PATHを通す」です。

PATHが通っていない14

繰り返しになりますが「ここを探すぜ」リストに場所が書いてあれば、ファイル名を指定するだけで実行できます。
PATHを通すのは

実行ファイルを(ファイルが置いてある場所を指定しないで)ファイル名を指定するだけで実行できるようにする

ためです。
言い方を変えると

実行ファイルがどこに置いてあるかを気にしなくて済むから

です。

ちょっと専門用語を使った専門的な例になりますが、Javaコンパイルするときには、本来であれば

C:\Program Files\Java\jdkうんちゃら\bin\javac test.java

のように指定する必要があります。
ただし「C:\Program Files\Java\jdkうんちゃら\bin\」を「ここを探すぜ」リストに書いておくことで

javac test.java

と指定すれば動くようになります。

この「C:\Program Files\Java\jdkうんちゃら\bin\」を「ここを探すぜ」リストに書いておく作業を指して「javacにPATHを通す」と言ったりするのです。

かなり長くなりましたが、ここまでが予備知識です。

以上を踏まえて

「『ここを探すぜ』リストに(実行ファイルのある)場所が書いていないから、ファイル名だけ指定されても動かないんだよね~」な状態

が「PATHが通っていない」です。

PATHが通っていない15

例えば、そうですね。
「ここを探すぜ」リストに

1.今いる場所
2.C:\test\
3.C:\hoge\


と書いてあったとしましょう。

PATHが通っていない16

この状態でピヨ太君が「『piyota.exe』を実行せよ!」と命令しました。

PATHが通っていない17

おっと、ピヨ太君はファイル名しか指定していませんね。
これでは「piyota.exe」がどこにあるか分かりません。

このような場合、コンピュータさんは「ここを探すぜ」リストを見て

1.今いる場所のpiyota.exe
2.C:\test\piyota.exe
3.C:\hoge\piyota.exe


のどれかがないか探してくれます。

PATHが通っていない18

ところがどっこい「piyota.exe」がある場所は「C:\piyopiyo\」でした。

PATHが通っていない19

そうすると、コンピュータさんは「piyota.exe」を見つけられませんよね。
「『piyota.exe』を実行せよ!」と言われても「そんなファイルは、なかったよ!」としか返せません。

PATHが通っていない20

このような状況を指して「『piyota.exe』へのPATHが通っていない」と表現したりします。

せっかくなので、もう一例、見ておきましょう。

先ほど「PATHを通す」を説明したときに「javac」の例を挙げましたよね。
Javaでコンパイルするときには、本来であれば

C:\Program Files\Java\jdkうんちゃら\bin\javac test.java

のように指定する必要があるけど「C:\Program Files\Java\jdkうんちゃら\bin\」を「ここを探すぜ」リストに書いておくことで

javac test.java

と指定すれば動くようになるよ!と書きました。

もし「C:\Program Files\Java\jdkうんちゃら\bin\」が「ここを探すぜ」リストに書かれていない状態で

javac test.java

を実行すると、例えば以下のようなエラーになります。

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


このエラーは「『javac』って何?よく分からないや!」と言っています。

javac(正確には「javac.exe」)のある場所が「ここを探すぜ」リストに書かれていない
  ↓
「javac.exe」が見つからない
  ↓
(該当しそうなファイルとかがないので)「javac」が何を指しているか理解できない


のが原因です。

このような状況を指して「javacにPATHが通っていない」と表現したりします。

PATHが通っていなくてエラーになる場合の対処法は

1.PATHを通す
2.ファイルの場所も指定して実行する


のどちらかです。

先ほどの「javac」の例で言えば「javac(javac.exe)」のある場所「C:\Program Files\Java\jdkうんちゃら\bin\」を「ここを探すぜ」リストに書き加えるのが「1.PATHを通す」です。
※実際にPATHを通す方法は今回は説明しません。必要に応じて、他の場所で情報を補完してください。

例えば

javac test.java

ではなく

C:\Program Files\Java\jdkうんちゃら\bin\javac test.java

のように指定して実行するのが「2.ファイルの場所も指定して実行する」になります。


image piyo2

一言でまとめるよ

まぁ「PATHが通っていない」って単語が出てきたら「コンピュータさんの持つ『ここを探すぜ』リストにファイルのある場所が書かれていないから、ファイル名だけを指定すると実行できない(ファイルが見つからない)状態なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像063
書籍画像058

おまけ

■訳してみるよ

「path(パス)」の意味は「小道」とか「散歩道」とか「進路」とか「方針」とかです。
「が通っていない」は日本語ですね。
何となく くっつけると

小道が通っていない

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
優れたエンジニアがコミュニティの中でしていること
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
ソフトウェア受託現場の「失敗」集めてみた。 42の失敗事例で学ぶ受託開発のうまい進めかた