Javaプログラミングを行う際、開発環境構築や設定で必要となる知識が「環境変数」や「PATH」を通すといった知識となります。
本記事では、初心者Javaプログラマー向けに基本的な環境変数やPATHの通し方をMac環境でのサンプルを交えながらご紹介していきます。
そもそも環境変数って何?Java開発の必須知識
まずは環境変数についてご紹介しておきます。
環境変数とはOS上に保存される共有情報で、同じコンピューター上で動作する全てのプログラムが利用出来る情報を保持した変数です。
Javaに限らずですが、プログラム開発を行う際に設定する必要があることも少なくありません。
まずはJavaプログラム開発で頻繁に利用する2つの環境変数をご紹介していきたいと思います。
プログラム開発に必須となる環境変数「PATH」
「PATH」は指定したプログラムをファイル名だけで開けるように、フォルダのアクセスパスを定義するための環境変数です。
例えば私たちユーザーは「sample.txt」というファイルを開きたいときには、コンピューターに「sample.txt」開いてとお願いすることになります。
しかしコンピュータからすると「sample.txt」がどこに格納されたファイルなのかわかりません。
もし「Document」に格納された「sample.txt」を開きたい場合にはコンピューターに「Document/sample.txt」を開いてという命令を与えないといけません。
しかし、毎回フォルダ名からプログラムファイル名までの長い名前を入力するのは面倒です。
そこで「PATH」という環境変数に「Document/」を指定することで「sample.txt」を開いてと命令するだけで「Document/sample.txt」を自動的に検索して開いてくれるように設定することが可能となります。
Javaアプリケーションでは環境変数「JAVA_HOME」にも注目
上述したPATHと同じような役割を果たす環境変数として「JAVA_HOME」の存在が挙げられます。
「PATH」で設定したアクセスパスか「JAVA_HOME」で設定したアクセスパスのどちらを参照しているかについてはJavaアプリケーションにより異なります。
「JAVA_HOME」の設定は必須ではありませんが、アプリケーションによっては「PATH」ではなく「JAVA_HOME」を参照しているため、設定しておいた方が良い環境変数となります。
Mac環境でのJava環境変数確認方法
Mac環境で「PATH」と「JAVA_HOME」環境変数に設定された値を確認する方法についてご紹介していきます。
コマンドで確認する
ターミナルのコマンドを利用することで簡単に環境変数を確認出来ます。
まずは「PATH」環境変数を確認するコマンドを実行してみましょう。
echo $PATH
続いて「JAVA_HOME」環境変数を確認してみましょう。
echo $JAVA_HOME
「PATH」や「JAVA_HOME」以外の環境変数も確認したい場合には下記のコマンドを実行してみましょう。
様々な環境変数として定義された情報がご確認頂けます。
printenv
「.bash_profile」ファイルを確認する
Macでの環境変数は「.bash_profile」といファイルに記載されています。
下記のコマンドで実行して記載された内容を確認してみましょう。
open ~/.bash_profile
特に設定を変更していない場合、テキストエディタが開かれ「.bash_profile」の記載内容がご確認頂けます。
Javaの環境変数に設定を追加してみよう
では今度はJavaの開発でも利用することの多い「PATH」と「JAVA_HOME」環境変数に値を追加してみましょう。
PATHへの設定値追加
まずはPATHへアクセスパスを追加してみましょう。
下記では筆者の環境でのJDK最新バージョン「jdk-13.0.1.jdk」が格納されているフォルダを追加してみたいと思います。
まずは現在の「PATH」の状態を確認しておきましょう。
echo $PATH
実行した結果は下記の画像の通りとなりました。
実際にコマンドで「PATH」環境変数に「jdk-13.0.1.jdk」のフォルダを追加してみましょう。
export PATH=$PATH:Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
exportコマンドで環境変数「PATH」に値を設定しています。
「$PATH」で現在設定されているPATHの値をまず定義し、後ろに「jdk-13.0.1.jdk」のフォルダを指定することで現在設定済みの「PATH」情報を上書きすることなく追記することが可能です。
「$PATH」の後ろに定義している「:」が区切りを意味しており、以前より登録されているPATH情報に追加で今回指定したJavaの情報が環境変数に保存されることになります。
「echo」コマンドで確認した結果が下記の通りとなります。
元々記述されていた値にjdkのパスが追加されていることをご確認頂けます。
JAVA_HOMEへの設定値追加
「JAVA_HOME」への設定値追加も基本的には「PATH」と同じです。下記のコマンドで実行出来ます。
export JAVA_HOME="Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home"
実行した結果が下記の通りとなります。
ターミナルのコマンドで設定したJava環境変数はプロセスを閉じると消える!?
環境変数「PATH」と「JAVA_HOME」への設定値追加方法をご紹介してきましたが、上記のようにターミナル上でコマンドを実行すると、ターミナルを一度閉じてしまうと設定した内容が消えてしまいます。
これはMacを含めたUNIX系OSの仕様でWindowsとは異なるため注意が必要です。
Macで環境変数を保存しておきたい場合には、「~/.bash_profile」に上述したexportコマンドを定義しておく必要があります。
「~/.bash_profile」はコンピューターログイン時に読み込まれるため、毎回ターミナルでコマンドを打たなくても、定義した環境変数が利用出来るように自動で設定されます。
注意点として、「~/.bash_profile」にコマンドを追加して保存しただけではシステムに反映されていませんので、下記のコマンドで有効化しておきましょう。
source ~/.bash_profile
さいごに:Java開発での環境変数設定は必ず通る道
本記事では、Java開発でプログラマーなら必ず通ることになる環境変数の設定やPATHの通し方について、基本的な情報から実際のやり方までご紹介してきました。
今回ご紹介した内容はMac環境を想定したものとなっておりますが、基本的な考え方はWindows環境でも変わりません。
初心者プログラマーがJava開発環境を整える際に最もつまずくことの多い部分でもありますので、Javaにおける環境変数の意味と役割を理解して、プログラミング作業を進められるようにしっかりと学習しておきましょう。
一般的にはこれらの作業をPATHを通すと呼んでいます。