Java ( For Linux ) 環境構築

Javaのインストール手順についての説明です。

但し、当ページは開発環境を構築する事を前提に必要最低限の情報を提供しており、動作を保障するものではありません。


また、当ページでは以下環境で説明を行います。

OS:Linux(CentOS)

インストールの準備

JDKダウンロードページ(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)にアクセスし、JDKのインストーラを入手します。


まず「Accept LicenseAgreement」を選択し、インストールファイルをダウンロード可能な状態にします。

Java インストールの準備画面01

利用している端末に合ったものを選択(ここではjdk-8u101-linux-x64.tar.gz)し、ダウンロードします。

※2016/10/8時点の最新バージョン

Java インストールの準備画面02

▲PageTop

インストール

ダウンロードしたファイルを展開します。


インストールファイルの展開

インストールを行うため、「su」コマンドで管理者権限に切り替えます。

[itsenkauser@itsenka ~]$ su [Enter]
パスワード: [Enter]
[root@itsenka itsenkauser]# 
        

ダウンロードしたインストールファイルを展開します。

展開は「tar」コマンドで行います。書式やオプションの詳細な説明は「tar」(UNIX/Linuxコマンド リファレンス)を参照してください。

ここではダウンロードフォルダに保存した「jdk-8u101-linux-x64.tar.gz」ファイルを「/usr/lib/jvm」フォルダへ展開しています。

[root@itsenka itsenkauser]# tar zxvf /home/itsenkauser/ダウンロード/jdk-8u101-linux-x64.tar.gz -C /usr/lib/jvm [Enter]
jdk1.8.0_101/
jdk1.8.0_101/THIRDPARTYLICENSEREADME-JAVAFX.txt
jdk1.8.0_101/THIRDPARTYLICENSEREADME.txt
jdk1.8.0_101/lib/
jdk1.8.0_101/lib/jexec

~~~~~~~~~~
(中略)
~~~~~~~~~~

jdk1.8.0_101/man/ja_JP.UTF-8/man1/tnameserv.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/pack200.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/jcmd.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/javapackager.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/jstat.1
[root@itsenka itsenkauser]# 
        

Javaのシンボリックリンクを設定

Javaは複数のバージョンが端末内にインストールされている場合があるので、シンボリックリンクでバージョンを使い分けます。

シンボリックリンクを使うと深い階層に実態となるファイル・フォルダがあっても、抽象的に短いパスで表現できます。

また、実態となるパスを変更する場合は、シンボリックリンク自体のパスは変更せずに実態のパスのみ変更することができます。

たとえば、シンボリックリンク「/usr/bin/java」に実態「/usr/lib/jvm/jdk1.8.0_101/bin/java」から実態「/usr/lib/jvm/jdk1.8.0_102/bin/java」に変更した場合、使う側は実態がどこを示しているのかを意識しなくとも「bin」フォルダ下の「java」を実行することができます。すなわち既にシンボリックリンクを利用している設定ファイル等は書き換え行わなくとも設定内容を変更できる利点があります。


シンボリックリンクは「update-alternatives」コマンドで管理を行うことができ、書式はオプションによって異なります。

グループ名に対して現在登録されているシンボリックリンクの一覧表示と設定の切り替えは「config」オプションで行い、書式は次のとおりです。

update-alternatives --config グループ名

選択肢の切り替えを行うことにより、複数のバージョンのプログラムを簡単に使い分けることが可能になります。


グループ名を「java」とし、「update-alternatives」コマンドを実行すると次のようになります。

ここでは変更を行わないので、選択番号を入力せずにEnterを押下します。

※現在の選択は「+」、優先度が一番高いものは「*」が選択番号左横に表示されます。

[root@itsenka itsenkauser]# update-alternatives --config java [Enter]

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64/jre/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: [Enter]
[root@itsenka itsenkauser]# 
        

上記実行結果から、グループ「java」に対して既に2つのJavaのバージョンがシンボリックリンクの設定されていることが分かります。

今回ダウンロードしたJavaを追加するには「update-alternatives」コマンドでオプション「install」を使います。

書式は次のとおりです。

update-alternatives --install シンボリックリンクのパス グループ名 実態へのパス 優先度

[root@itsenka itsenkauser]# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_101/bin/java 10 [Enter]
[root@itsenka itsenkauser]# 
        

上記設定が追加されているか確認するために「update-alternatives」コマンドを実行すると、次のようになります。

[root@itsenka itsenkauser]# update-alternatives --config java [Enter]

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64/jre/bin/java
   3           /usr/lib/jvm/jdk1.8.0_101/bin/java ←追加されている

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
        

番号が3として追加されているため、「3」を入力して「Enter」を押下すると今回ダウンロードしたJavaを適用できます。

[root@itsenka itsenkauser]# update-alternatives --config java [Enter]

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64/jre/bin/java
   3           /usr/lib/jvm/jdk1.8.0_101/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3 [Enter]
[root@itsenka itsenkauser]# 
        

もう一度「update-alternatives」コマンドを実行して設定が反映されていることを確認します。現在の選択は番号横に「+」が付きます。

確認後「Enter」を押下して現在の選択を維持します。

[root@itsenka itsenkauser]# update-alternatives --config java [Enter]

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64/jre/bin/java
 + 3           /usr/lib/jvm/jdk1.8.0_101/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: [Enter]
[root@itsenka itsenkauser]# 
        

「update-alternatives」コマンドに関してのその他のオプションは「update-alternatives」コマンドにオプション「/?」や「/h」または「/help」を付与することで確認できます。

書式は次のとおりです。

update-alternatives /?
update-alternatives /h
update-alternatives /help

[root@itsenka itsenkauser]# update-alternatives /? [Enter]
alternatives バージョン 1.3.61 - Copyright (C) 2001 Red Hat, Inc.
これは GNU 一般公有使用許諾書の規定の元で自由に再配布することができます。

使用法: alternatives --install <リンク> <名前> <パス> <優先度>
                    [--initscript <サービス>]

                    [--slave <リンク> <名前> <パス>]*
       alternatives --remove <名前> <パス>
       alternatives --auto <名前>
       alternatives --config <名前>
       alternatives --display <名前>
       alternatives --set <名前> <パス>
       alternatives --list

共通のオプション: --verbose --test --help --usage --version
                --altdir <ディレクトリ> --admindir <ディレクトリ>
[root@itsenka itsenkauser]#
        

「javac」, 「javaws」のシンボリックリンクを設定

「java」と同様に「javac」と「javaw」のシンボリック設定を行います。

「javac」はコンパイル時に、「javaws」は「Java Web Start」を実施する場合に利用できます。


「update-alternatives」コマンドを実行して「javac」と「javaw」の設定状態を確認します。

[root@itsenka itsenkauser]# update-alternatives --config javac [Enter]
[root@itsenka itsenkauser]# 
        

[root@itsenka itsenkauser]# update-alternatives --config javaws [Enter]
[root@itsenka itsenkauser]# 
        

上記確認結果により「javac」と「javaw」には何も設定されていないので、「java」の時と同様に「update-alternatives」コマンドの「innstall」オプションを使って設定を行います。

[root@itsenka itsenkauser]# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_101/bin/javac 10 [Enter]
[root@itsenka itsenkauser]# 
        

[root@itsenka itsenkauser]# update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.8.0_101/bin/javaws 10 [Enter]
[root@itsenka itsenkauser]# 
        

上記設定結果を「update-alternatives」コマンドの「config」オプションを使って確認すると、設定が反映されていることがわかります。

設定はひとつのみなので、デフォルト選択されます。

[root@itsenka itsenkauser]# update-alternatives --config javac [Enter]

1 プログラムがあり 'javac' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jdk1.8.0_101/bin/javac

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: [Enter]
[root@itsenka itsenkauser]# 
        

[root@itsenka itsenkauser]# update-alternatives --config javaws [Enter]

1 プログラムがあり 'javaws' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jdk1.8.0_101/bin/javaws

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: [Enter]
[root@itsenka itsenkauser]# 
        

Javaバージョン確認

Javaがインストールされているか確認するには「java」コマンドのオプション「version」を使います。書式は次の通りです。

java -version

正常にインストールされていれば、バージョン番号が表示されます。

[root@itsenka itsenkauser]# java -version [Enter]
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
[root@itsenka itsenkauser]#
        

「javac」も同様の書式で確認可能です。

javac -version

[root@itsenka itsenkauser]# javac -version [Enter]
javac 1.8.0_101
[root@itsenka itsenkauser]# 
        

「java」コマンドに関するその他のオプションは「java」コマンドにオプション「-?」や「-h」または「-help」を付与することで確認できます。

java -?
java -h
java -help

[root@itsenka itsenkauser]# java -? [Enter]
使用方法: java [-options] class [args...]
           (クラスを実行する場合)
   または  java [-options] -jar jarfile [args...]
           (jarファイルを実行する場合)
optionsには次のものがあります。
    -d32
    -d64
    -server
                  デフォルトVMはserverです.

    -cp <ディレクトリおよびzip/jarファイルのクラス検索パス>
    -classpath <ディレクトリおよびzip/jarファイルのクラス検索パス>
                  クラス・ファイルを検索するディレクトリ、
                  JARアーカイブおよびZIPアーカイブの:で区切られたリストです。
    -D<name>=<value>
                  システム・プロパティを設定する
    -verbose:[class|gc|jni]
                  詳細な出力を行う
    -version      製品バージョンを出力して終了する
    -version:<value>
                  警告: この機能は非推奨であり、詳細のリリースで
                  廃止されます。
                  指定したバージョンを実行に必須にする
    -showversion  製品バージョンを出力して続行する
    -jre-restrict-search | -no-jre-restrict-search
                  警告: この機能は非推奨であり、詳細のリリースで
                  廃止されます。
                  ユーザーのプライベートJREをバージョン検索に含める/除外する
    -? -help      このヘルプ・メッセージを出力する
    -X            非標準オプションに関するヘルプを出力する
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  指定した粒度でアサーションを有効にする
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  指定した粒度でアサーションを無効にする
    -esa | -enablesystemassertions
                  システム・アサーションを有効にする
    -dsa | -disablesystemassertions
                  システム・アサーションを無効にする
    -agentlib:<libname>[=<options>]
                  ネイティブ・エージェント・ライブラリ<libname>をロードする。例: -agentlib:hprof
                  -agentlib:jdwp=helpと-agentlib:hprof=helpも参照
    -agentpath:<pathname>[=<options>]
                  フルパス名でネイティブ・エージェント・ライブラリをロードする
    -javaagent:<jarpath>[=<options>]
                  Javaプログラミング言語エージェントをロードする。java.lang.instrumentを参照
    -splash:<imagepath>
                  指定したイメージでスプラッシュ画面を表示する
詳細はhttps://www.oracle.com/technetwork/java/javase/documentation/index.htmlを参照してください。
[root@itsenka itsenkauser]# 
        

「javac」コマンドに関するその他のオプションは「javac」コマンドにオプション「-help」を付与することで確認できます。

書式は次のとおりです。

javac -help

[root@itsenka itsenkauser]# javac -help [Enter]
使用方法: javac <options> <source files>
使用可能なオプションには次のものがあります。
  -g                         すべてのデバッグ情報を生成する
  -g:none                    デバッグ情報を生成しない
  -g:{lines,vars,source}     いくつかのデバッグ情報のみを生成する
  -nowarn                    警告を発生させない
  -verbose                   コンパイラの動作についてメッセージを出力する
  -deprecation               非推奨のAPIが使用されているソースの場所を出力する
  -classpath <path>          ユーザー・クラス・ファイルおよび注釈プロセッサを検索する位置を指定する
  -cp <path>                 ユーザー・クラス・ファイルおよび注釈プロセッサを検索する位置を指定する
  -sourcepath <path>         入力ソース・ファイルを検索する位置を指定する
  -bootclasspath <path>      ブートストラップ・クラス・パスの場所をオーバーライドする
  -extdirs <dirs>            インストール済拡張機能の場所をオーバーライドする
  -endorseddirs <dirs>       推奨規格パスの場所をオーバーライドする
  -proc:{none,only}          注釈処理やコンパイルを実行するかどうかを制御します。
  -processor <class1>[,<class2>,<class3>...] 実行する注釈プロセッサの名前。デフォルトの検出処理をバイパス
  -processorpath <path>      注釈プロセッサを検索する位置を指定する
  -parameters                メソッド・パラメータにリフレクション用のメタデータを生成します
  -d <directory>             生成されたクラス・ファイルを格納する位置を指定する
  -s <directory>             生成されたソース・ファイルを格納する場所を指定する
  -h <directory>             生成されたネイティブ・ヘッダー・ファイルを格納する場所を指定する
  -implicit:{none,class}     暗黙的に参照されるファイルについてクラス・ファイルを生成するかどうかを指定する
  -encoding <encoding>       ソース・ファイルが使用する文字エンコーディングを指定する
  -source <release>          指定されたリリースとソースの互換性を保つ
  -target <release>          特定のVMバージョン用のクラス・ファイルを生成する
  -profile <profile>         使用されているAPIが指定したプロファイルで使用可能かどうかを確認します
  -version                   バージョン情報
  -help                      標準オプションの概要を出力する
  -Akey[=value]              注釈プロセッサに渡されるオプション
  -X                         非標準オプションの概要を出力する
  -J<flag>                   <flag>を実行システムに直接渡す
  -Werror                    警告が発生した場合にコンパイルを終了する
  @<filename>                ファイルからの読取りオプションおよびファイル名

[root@itsenka itsenkauser]# 
        

「javaws」コマンドに関するその他のオプションは「javaws」コマンドにオプション「-?」や「-h」または「-help」を付与することで確認できます。

書式は次のとおりです。

javaws -?
javaws -h
javaws -help

[root@itsenka itsenkauser]# javaws -? [Enter]
Java(TM) Web Start 11.101.2.13-fcs 
使用方法:    javaws [run-options] <jnlp-file>
    javaws [control-options]

run-optionsには次のものがあります。
-verbose           追加の出力を表示
-offline           アプリケーションをオフライン・モードで実行
-system            アプリケーションをシステム・キャッシュのみから実行
-Xnosplash         スプラッシュ画面を表示せずに実行
-J<option>         オプションをVMに与える
-wait              Javaプロセスを開始し、その終了を待機

control-optionsには次のものがあります。    
-viewer            キャッシュ・ビューアをJavaコントロール・パネルに表示
-clearcache        未インストールのすべてのアプリケーションをキャッシュから削除
-uninstall         すべてのアプリケーションをキャッシュから削除
-uninstall <jnlp-file>                  アプリケーションをキャッシュから削除
-import [import-options] <jnlp-file>    アプリケーションをキャッシュにインポート

import-optionsには次のものがあります。
-silent            メッセージを表示せずにインポート(ユーザー・インタフェースなし)
-system            アプリケーションをシステム・キャッシュにインポート
-codebase <url>    指定されたコード・ベースからリソースを取得
-shortcut          ユーザーがプロンプトを受け入れたものとしてショートカットをインストール
-association       ユーザーがプロンプトを受け入れたものとしてアソシエーションをインストール

[root@itsenka itsenkauser]#
        

▲PageTop