Help us understand the problem. What is going on with this article?

MacでのJava開発環境構築を通して「PATHを通す」意味を学ぶ

More than 3 years have passed since last update.

PATHを通すということ

プログラム実行時に自動的に検索させるディレクトリを指定することです。

たとえばJDKを配置する時、

windowsだと C:\Java\jdk1.8.0\Home\bin(以下略)
Macだと ~/Library/Java/JavaVirtualachine/jdk1.8.0/Home/bin(以下略)

みたいに同じJDKでもディレクトリに行き着くまでの階層が異なったりします。
そこでこの差異を吸収するために、実行マシン(コンパイラ?)上では上記の太字の部分を$JAVA_HOME$と定義することでどんな環境にも対応できるようにしています。

もちろん何もしていない状態のパソコンでは$JAVA_HOME$なんてものは定義されていないので、環境ごとに設定をしなければなりません。これをPATHを通すと表現します。
PATHの呼び方はパソコン本体(OS単位)ではPATH、JavaではJAVA_HOME、tomcatならCATALINA_HOME、apacheならHTTPD_HOMEなどミドルウェアによって様々です。
ミドルウェアによってはインストール時に自動的にPATHを通してくれますが、Javaはやってくれないので自分でやる必要があります。あるいは特定のフォルダにPATHを通すことで自作ショートカットを配置できたりします。→
Windows使いのプログラマは絶対に仕込んでおくべき最強のランチャー1選

流れ

  1. .bash_profileを開く
  2. PATHとJAVA_HOMEを追記
  3. 適用と確認

ターミナルを使って作業します。

1. .bash_profileを開く

Macでは.bash_profileというファイルにWindowsで言うところの環境変数が記述されています。これを開きます。おそらくテキストエディタで開かれるかと思います。

$ open ~/.bash_profile

新品のMacでファイルが存在しない場合は作ってください。

$ touch .bash_profile

.bash_profileと双璧となる存在に.bashrcというファイルがあります。両者の違いは

.bash_profile→ログイン時に自動的に読み込まれる
.bashrc→bash(ターミナル)起動時に読み込まれる

です。.bash_profileのほうが優先度が高いようです。基本的には.bash_profileを編集しましょう。

2. PATHとJAVA_HOMEを追記する

以下の文法で追記します。

$ export 変数名=ディレクトリ

すでに存在する変数に追加したい場合は、以下の文法で追記します。

$ export $元変数名:変数名=ディレクトリパス

元の変数名を後ろにつけることで優先順位を上げることができます。

$ export 変数名:$元変数名=ディレクトリパス

Javaの実行環境をPATHに、JAVA_HOMEを新規で追加したい場合にはこんな感じで追記します。

export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

※ディレクトリパスは異なるかもしれないので適宜読み替えて下さい。

追記したら上書き保存をしてください。

3. 適用と確認

.bash_profileを適用します。

$ source ~/.bash_profile

これで通りました。
ターミナルを再起動して本当に通っているか確認をします。

$ echo $PATH
$ echo $JAVA_HOME

追記したディレクトリが表示されれば成功です。

参考

PATHを通す方法
open ~/.bash_profile で .bash_profile が編集できる!Mac OS X 便利すぎ
MacでPATHを通す
PATHを通すために環境変数の設定を理解する (Mac OS X)
MacでPATHを通す .bash_profileの作成と編集

s_hino
Javaが本業です。わかりやすさ重視です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away