Java開発で初心者が躓きやすいポイントとして、「パスを通す」の意味が分からないという点がよくあげられます。
本記事では、Javaでパスを通すの考え方から方法について、開発初心者の方向けにご紹介していきます。
Javaでパスを通すの意味とは
Javaで「パスを通す」というのは、環境変数の「PATH」に対してプログラムファイルのフルパスを設定することで、プログラム名だけで実行出来るようにする設定のことを指しています。
環境変数
環境変数は、OS自体が持つ共有機能で、すべてのプログラムで共通して使うことが出来ます。
システムにより定義されている環境変数と、ユーザーが独自で定義する環境変数の2種類が存在します。
環境変数の実体は文字列であり、コンピューターの電源を切っても初期化されないのが特徴です。
PATHの役割
PATHは環境変数の1つで、ファイルの場所を特定するために利用されます。
通常コンピューター上で任意のプログラムを動かしたい場合、「/Applications/Utilities/Terminal.app」のような形式で、実行ファイルが格納されたフルパスを指定する必要がありますが、PATHにあらかじめ設定しておくことにより「Terminal.app」とコマンド入力するだけでプログラムを実行出来るようになります。
パスを通す
「パスを通す」の意味合いについて再度ご紹介すると、上述した環境変数の1つ「PATH」に対して実行ファイルのあるディレクトリを設定することです。
Javaの場合、開発に必要なJDKをインストールし、インストールされたディレクトリをPATHに設定することでパスが通った状態を指します。
もう1つのパス JAVA_HOME
一般的にパスを通す意味合いは環境変数「PATH」への設定ですが、Javaアプリケーションによっては「JAVA_HOME」と呼ばれる環境変数を利用することもあります。
このJAVA_HOMEについても確認しておきましょう。
JAVA_HOMEとは
JAVA_HOMEは名前の通り、Java用の環境変数の1つで様々なJavaアプリケーションでJavaの設定を共有出来るように設定します。
JAVA_HOME自体は必須の環境変数ではないため、ご利用のコンピューターによっては環境変数の一覧を確認しても表示されない場合があるため、ご自身での登録が必要です。
JAVA_HOMEもPATHに設定
ではJAVA_HOMEとPATHはどのように使い分けるのかですが、参照先はアプリケーションにより異なるためJAVA_HOME自体をPATHに設定してしまう方法が一般的です。
JAVA_HOMEをPATHに設定しておくことで、同じ記述を両方にする必要がなくなり、JAVA_HOME側にパスを設定しておけば自動的にPATHの環境変数としても認識されるため、整理がしやすくなります。
JAVAのパスを通してみよう
では実際にJAVAの開発者用ツールであるJDKをインストールして、パスを通すところまで確認していきましょう。
JDKのインストール状況を確認
コンピューターにインストールされているJDKを確認するには下記コマンドを実行します。
/usr/libexec/java_home -V
JDKがインストールされていない場合には下記のようなインストール案内が表示されます。
The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java.
JDKがインストールされている場合、バージョン情報が表示されますのでインストール作業は飛ばしてもらって問題ありません。
JDKをインストール
JDKをインストールする方法はいくつかありますが、今回はシンプルにOracle社のダウンロードページより入手していきます。
ダウンロードページの「macOS」タブを選択し、今回は「Arm 64 DMG Installer」をダウンロードしていきます。
ダウンロードが完了したらダブルクリックでdmgファイルを開きます。
pkgファイルが表示されるので、ダブルクリックして開きましょう。
画像のようにインストーラーが起動するので、手順に従ってインストール作業を進めていきます。
インストールが完了したらウィンドウを閉じておきましょう。
JDKの確認
ではインストールされたJDKを上述したコマンドで確認してみましょう。
$ /usr/libexec/java_home -V Matching Java Virtual Machines (1): 17.0.1 (arm64) "Oracle Corporation" - "Java SE 17.0.1" /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
このようにJDKのバージョン情報が表示されていれば、インストール完了です。
パスを通してみよう
ではインストールされたJDKを環境変数の「PATH」に設定してみたいと思います。
まず現在のPATHの設定がどのような状態か下記コマンドで確認してみましょう。
$ echo $PATH /usr/local/bin:/usr/bin
echoコマンドで現在のPATHへ設定されている状態が確認出来ます。
次に先程インストールしたJDKのディレクトリをPATHに追加してみましょう。
export PATH=$PATH:Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
この記述方法により、現在設定されているPATHに追加する形で、今回インストールしたJDKのディレクトにパスを通すことが出来ます。
再度echoコマンドでJDKが設定されているか確認してみます。
$ echo $PATH /usr/local/bin:/usr/bin:Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
パスを保存するにはbash_profileを編集
ここまでの方法でパスを通すことが出来たわけですが、コマンドで実行しただけではターミナルを閉じてしまうと環境変数の設定が消えてしまいます。
そこで上記のコマンドを「~/.bash_profile」に記述することで、定義した環境変数の内容をコンピューターログイン時に反映させることが出来るようになります。
$ cat ~/.bash_profile export PATH=$PATH:Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
「~/.bash_profile」はコンピューターログイン時にしか読み込まれないので、即時反映させるためには下記コマンドを実行しておきましょう。
source ~/.bash_profile
さいごに: Java開発ではパスを通すことが最初の第一歩
本記事では、Java開発で初心者が躓きやすい「パスを通す」の意味合いから設定方法についてご紹介してきました。
JDKはJAVA開発を行う上で必須のツールであり、パスを通す作業はJava開発を始める際まず設定しなければいけない必須作業の1つです。
開発を始めたばかりの初心者の方には慣れない作業かもしれませんが、どんなプロジェクトでも必要となる作業のため今のうちにしっかりと意味合いと設定方法を確認しておきましょう。
今回記載しているサンプルはMac環境で操作しているため、Windows環境の方はコマンドなど読み替えが必要となります。