Java8のインストール

インストール先のディレクトリの確認

step005の画像
  1. エクスプローラから「c:¥developer¥java¥」配下に「jdk」「jre」ディレクトリが前工程で作成した事を確認します。
  2. 前章のJava7インストールを実行された方は、上図のようにjava7がインストールされている状態です。

インストールの実行

  1. 「c:¥downloads¥java¥jdk」配下に「jdk」に配下に保存した「jdk-8u112-windows-x64.exe」インストーラを起動します。 step006の画像
  2. 「次へ」ボタンを押下します。 の画像
  3. 「変更」ボタンを押下します。
  4. インストール先に「c:¥developer¥java¥jdk¥jdk1.8.0_112」を指定して下さい。
  5. 「次へ」ボタンを押下して下さい。
  6. インストールが始まります。jdkのインストール画面が表示されます。
  7. 「閉じる」ボタンを押下します。 ste-008の画像
  8. jre8のインストーラが起動します。
  9. 「変更」ボタンを押下します。 step009の画像
  10. 「フォルダの参照」画面が表示されます。
  11. 「c:¥downloads¥java¥jre」配下に「新しいフォルダの作成」ボタン押下で「jre1.8.0_112」を作成します。
  12. 「jre1.8.0.112」を選択した状態で「OK」ボタンを押下します。 step010の画像
  13. 既に「Java7」又は「Java8」をインストールされている場合には、次の画面が表示されます。 step010の画像
  14. チェックボックスに「チェックしない」状態で「アンインストール」ボタンを押下します。(過去バージョン維持)
  15. ※.Java8のバージョンアップ(1.8.0_80を1.8.0_112)したい場合にはチェックボックスで指定します。
  16. 残すバージョンとアンインストールされたバージョンが画面に表示されます。
  17. 「次」ボタンを押下します。 step012の画像
  18. java8の終了画面が表示されます。 step013の画像
  19. 「閉じる」ボタンを押下する事で、インストール作業が終了します。

Javaコマンドの動作確認

step014の画像
  1. [windowsメニュー]右クリック-[コマンドプロンプト]を起動します。
  2. 「cd c:¥projects¥test」を実行し、カレントディレクトリを変更します。
  3. 「java -version」コマンドを実行します。
    前章のJava7インストールで設定した「jdk_1.7.0_80」ではなく「jdk_1.8.0_112」が実行されています。
  4. インストールしたバージョンの情報が表示された事を確認します。
  5. 「javac -version」を実行します。
  6. 前章のJava7インストールで設定した「jdk_1.7.0_80」が実行さてれています。
  7. 「set path」コマンドを実行し、環境変数「Path」を表示します。

重要Javaコマンドが何故実行できるか考えよう

ここで、重要なポイントです。何故前項で確認したjavaコマンドが各ディレクトリ位置で実行できたのでしょうか?

何故Java7のインストールでシステム環境変数「Path」に設定した「c:¥developer¥java¥jdk¥jdk1.7.0_80¥bin」が利いてないのでしょうか。

注意以下の実行手順は、実行しないでください。

WindowsOSでソフトウェアを各パスで実行できるようにするには、

  1. ソフトウェアをインストールします。
  2. [windowsメニュー]右クリック-[システム]-[システムの詳細設定]リンクを押下します。
  3. [システムのプロパティ]画面-[詳細設定]タブ画面-[環境変数]ボタンを押下します。
  4. ユーザの環境変数または、システムの環境変数の「Path」を選択します。
  5. 「編集」ボタンを押下し、「インストールしたソフトウェアのフルパス¥bin」を追加します。

この手順を通して初めて、インストールしたソフトウェアのexeが各ディレクトリで実行できます。

何故、java8のjavaコマンドはこの手順を踏まずして、実行できたのでしょうか?

また、Javaの切替手順は、システム環境変数[Path]の「c:¥developer¥java¥jdk¥jdk1.7.0_80¥bin」を新しいバージョンに指定すれば良いはずです。

何故、java7のjavaコマンドが反応しなくなったのでしょうか?

重要Javaコマンドが何故実行できる解答

前項のコマンドプロンプトの「Path」を良く見て下さい。
Pathの先頭に「C:¥ProgramData¥Java¥javapath」が自動に追加されています。
Pathの「c:¥developer¥java¥jdk¥jdk1.7.0_80¥bin」より先に追加されています。
Pathの中央に「C:¥Windows¥System32」(java7が自動設定するjavaコマンド格納先)がきちんと設定されています。

環境変数Pathは、システム環境変数Pathの値が優先される。

ユーザ環境変数Pathはシステム環境変数Pathの後に評価される。

更にシステム環境変数Pathは、優先順があり、Pathの先頭から評価されていく。

このため、Java8の「C:¥ProgramData¥Java¥javapath」が先に評価されたため、
「c:¥developer¥java¥jdk¥jdk1.7.0_80¥bin」のJava7のjavaコマンドが反応しなかったのです。
無論「C:¥Windows¥System32」のJava7のjavaコマンドも反応しなかったのです。

注意表示の際には、誤操作に気を付けて下さい。

  1. エクスプローラを起動し「C: ProgramData¥Java¥javapath」を表示します。 step015の画像
  2. 「java.exe」「javaw.exe」「javaws.exe」が存在することを確認します。
    • javaコマンドは、javacでコンパイルしたclassファイルを実行するためのコマンドです。
    • javawコマンドは、javaコマンドと同じですが、標準出力にメッセージが出力されません。
    • javawsコマンドは、Java Web Start用のコマンドで
      インターネットに公開されたJNIPファイルを 指定することで、インターネットに公開されあたJavaアプリケーションをPCで実行します。

    これがJava8でインストールされたjavaコマンドです。

  3. [windowsメニュー]右クリック-[システム]-[システムの詳細設定]リンクを押下します。
  4. [システムのプロパティ]画面-[詳細設定]タブ画面-[環境変数]ボタンを押下します。
  5. システム環境変数の[Path]を選択し[編集]ボタンを押下します。※.編集はされません。 step016の画像
  6. システム環境変数の[Path]に「C: ProgramData¥Java¥javapath」が先頭に
    「%SystemRoot%¥system32」=(c:¥Windows¥System32)が後に設定されている事を確認します。
  7. 「キャンセルボタン」を押下して下さい。

重要上記2点の事がJava8がインストールした直後に各ディレクトリでjavaコマンドが実行できた理由です。

更にJava7も共存している状態です。

ただし、この状態ではインストールしたJdk付随のjavacコマンド等がJdk1.7.0_80のままです。

次項以降の手順を続けて実行して下さい。