前回の振り返り
第1回ではOracle JDKをインストールして
Javaがちゃんと動くか確認したよ!
ちゃんと動くことが確認できたけど
まだ環境構築が続くんですね!
そうなんだ!
今回は環境変数の設定を行うよ!
環境変数って何だろう?
設定を行う前に
環境変数とは何かを確認してみよう!
環境変数とは、OS(オペレーションシステム)が動作する際に使用する
設定情報を保持する変数のことです
・・・。
よく分かりません!
実際に動作を確認してみよう!
コマンドプロンプトを新規で起動するよ!
Windows画面の下に「検索」と表示されている部分があります
こちらに「cmd」と打ち込んでエンターキーを押しましょう
第1回の時にJavaの動作確認に使用した画面が出てきたら成功です
この画面を「コマンドプロンプト」といいます
前回はこの状態から「java -version」と打ち込んで
Javaが動くことを確認しましたよね!
じゃあもう一度確認してみようか!
前回と同じ結果が表示されてます!
実は打ち込んだコマンドは同じだけど
前回と実行されている処理が微妙に違うんだ!
前回の動作確認では、あらかじめJDKをインストールしたフォルダからbinフォルダに移動した状態でコマンドプロンプトを呼び出していました(画像赤枠部分)
つまり、「C:\Oracle\Java\jdk-17\bin」の場所から「java」というコマンドを使用して、
「-version」というオプションでJavaのバージョンを表示させるように指示していたのです
つまり、前回の動作確認ではJDKのインストール場所からbinフォルダに移動して
その配下にあるjavaのコマンドを使用して動作確認していたんだ!
うーん・・・
あんまりピンと来ないです・・・
エクスプローラの画面を使用して確認してみよう!
JDKのインストール先からbinフォルダに移動した「C:\Oracle\Java\jdk-17\bin」の中にjavaと書かれたアプリケーションがあります
前回の動作確認では、「C:\Oracle\Java\jdk-17\bin」の場所からjavaアプリケーションが見えていたので実行できていたのです
エクスプローラからでも
C:\Oracle\Java\jdk-17\binの場所からjavaが見えています!
なるほど!
前回はjavaアプリケーションが見える位置にしてから
コマンドプロンプトを呼び出して動作確認したんですね!
あれ?
でも今回はコマンドプロンプトを呼び出すのに
移動していないんじゃ・・・
前回の動作確認では、javaアプリケーションが見える位置からコマンドプロンプトを起動していたので動作確認ができていました
今回は特に移動していない状態であるため「C:\Users\ハシ太」という場所からjavaコマンドを実行しています
中身を確認しましたが「java」と書かれたアプリケーションが存在していません
なぜjavaコマンドによる動作確認ができたのでしょうか?
実はこの答えこそが環境変数なんだ!
実際に確認してみるよ!
先ほどの「検索」と書かれた場所に今度は「環境変数」と入力しエンターキーを押します
この時、最も一致する検索結果である「システム環境変数の編集」が選択されるはずです
その下の「環境変数を編集」ではないので間違えないようにしましょう
システムのプロパティ画面が表示されますので「環境変数」を選択します
以下の画面では「Path」を選択し、「編集」をクリックします
以下の画面のように「C:\Program Files\Common Files\Oracle\Java\javapath」と書かれたものが存在するか探します
ありましたね!
これが何を指すのでしょう?
エクスプローラで確認してみよう!
「C:\Program Files\Common Files\Oracle\Java\javapath」をエクスプローラ上で表示させてみましょう
何か4つほどアプリケーションが入ってますね・・・
javaアプリケーションも入ってます!
そう!さっきの動作確認で使用されたjavaは
ここにあるjavaアプリケーションなんだ!
ええっ!? 私こんなフォルダ用意してないですし
そもそも環境変数に設定なんてしてないですよ!?
このフォルダの作成も環境変数への登録も
JDKをインストールしたときに自動で実行されたんだ!
このように何らかのインストーラを使用してインストールを行うと自動的に環境変数の設定やファイルの作成が行われることがあります
前回のJDKのインストールの途中で「このアプリがデバイスに変更を加えることを許可しますか?」と聞かれたと思いますが、この変更というのに環境変数の設定やファイルの作成が含まれています
今回は信用できる場所から取得したインストーラだったので問題ないですが、悪意のあるインストーラを誤って実行してしまうと、重要なファイルの削除やパソコンの設定変更などによって損害が発生する場合があります
インストーラの取得元が信頼できるかどうか、本当に実行しても問題ないかをよく確認してから実行するようにしましょう
Pathの説明に戻ります!
今出てきたPathは、今の場所に目当てのファイルやアプリがない場合にPath環境変数に設定されている内容を上から順番に使用して該当のファイルやアプリがないか調べます
つまり今回の動作確認でいうと
①「C:\Users\ハシ太」
②「C:\Program Files\Common Files\Oracle\Java\javapath」
③「%SystemRoot%\system32」
④ ・・・(省略)
の順番でjavaがあるか調べる動作をするんですね!
そうだね!今回は②で見つかったので②で見つけたjavaを使用してるね!
ちなみに、②で見つかった場合③以降の場所は探さないよ!
この%SystemRoot%っていうのも気になりますね・・・
それも環境変数だよ!
%で環境変数名を囲むことで使用できるんだ!
環境変数「hogehoge」を新規に追加し、値に「hogehogehashita」を設定しました
この状態でコマンドプロンプト上から「echo %hogehoge%」と入力して実行してみましょう
echoコマンドはメッセージを表示させる役割を持ったコマンドです
「hogehogehashita」が出力されています
すみません・・・
正直だから何?って感じなんですけど・・・
環境変数を使用するメリットの一例を紹介するよ!
- 設定の一元管理:最初に環境変数を設定しておくことで、他のアプリやツールを使用したときにその環境変数を使用することで、同じ設定が共有できる
- 柔軟性と可搬性の向上:環境変数はスクリプトにも使用できるので、例えば環境変数hogehogeの値を表示するスクリプトがあれば、A環境ではhogehogehashita、B環境ではhogehogehashimiといったようにスクリプトの中身を変えなくても結果が変えられる
- 利便性の向上:Pathにディレクトリを追加することで、直接実行ファイルを呼び出すことができるため、毎回パス(C:\Oracle\Java\jdk-17\binみたいな値)を入力しなくてよくなる
なるほど・・・
なんとなく環境変数が便利なものだと分かりました!
じゃあJavaを使用するために推奨される環境変数について・・・
は長くなっちゃったから次回にしよう!
本当にいつになったらプログラミングできるの・・・
今回の振り返りと次回の内容
今回は環境変数について取り上げました
何らかのアプリや実行ファイルを呼び出すときに、それと同名の実行ファイルがPathに登録されていて実際に動かしたいアプリや実行ファイルより優先度が高かった場合、予期しないアプリや実行ファイルが実行されることがあります
その時は、Pathの設定を解除したり「上へ」「下へ」などを使用して優先順位を変えて対処してみてください
次回は環境変数の設定を実際に進めていきます
全然進まなくてごめんなさい・・・
環境変数の設定が終わればプログラムが動かせるはず!
あんまり期待できないなあ・・・
次回もよろしくね!
コメント