「パスを通す」の意味が分からない

0
3045
views

よくプログラムの本やサイトでは「このままではコマンドが実行できないのでパスを通してください」と、さらっと書いてある時があります。でもそれだけでは、パスの通し方は知ることを知ることはできても、「パスを通す」の意味は理解できません。何のためにパスを通すのか、パスを通すとはどういうことかを考えます。

パスが通ってないと出るエラー

例えばノーマルに Java の開発キットである JDK をインストールしてみます。その後、インストールした Java のバージョンを java -version コマンドで調べると以下のようになってしまいます。

インストールしたのにファイルがないと言われてしまうことがあります。

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

でもこれは出て当然なエラーです。エラーが出る理由は「パスが通っていない」からです。

「パスが通っていない」とは

「パスが通っていない」とは、実行したいプログラムへの経路(パス)が明示されておらず、プログラムの存在が認識されていない状態です。

java というコマンドは「java.exe というファイルを実行してください」というコマンドです。つまり、返ってきたエラーは「そんなファイルねえよ」と言ってるわけです。

ファイルを認識させるには

ファイルを認識させるには2つの方法があります。1つは、実行したいプログラムが存在するディレクトリに行くことです。

方法1: ファイルのあるディレクトリに移動する

例えば以下のようなディレクトリ階層があったとします。

C:.
  ├─dog
  │  ├─american
  │  └─japanese
  │      shibainu.exe
  ├─cat
  │  ├─american
  │  └─japanese
  │ 
  └─bird

shibainu.exe を実行したい時、cat ディレクトリにいても shibainu コマンドでは実行できません。dog ディレクトリにいても実行できません。dog 配下の japanese ディレクトリに行けば、shibainu コマンドが実行可能になります。

C:\>shibainu
'shibainu' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\>cd ./dog/japanese
 
C:\dog\japanese>shibainu
wan wan!

ファイルを認識させる方法はもう1つあります。それが「パスを通す」方法です。

方法2: パスを通す

Windows の場合、環境変数の Path に実行したいファイルのディレクトリパスを追記します。

Windows でパスを通す方法
http://snagimo.com/how-to-set-path-with-enviroment-variable-on-windows

パスを通せば、java.exe ファイルは認識されるので、

C:\>java -version

java -version コマンドを実行すれば、

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)

現在利用している Java のバージョン情報が表示されます。

まとめ

何のためにパスを通すのか

パスを通すのは、どこにいても(どのディレクトリにいても)コマンドが実行できるようにするためです。パスを通さなければ、コマンド実行のたびにファイルのあるディレクトリに移動しなければなりません。面倒です。そんなことできないです。

パスを通すとはどういうことか

OS にファイルへの経路(パス)を明示することで、どのディレクトリにいてもコマンド1つでそのファイルを実行できるようにすることです。Windows の場合、システムの環境変数にパスを追加します。