Javaのインストール手順についての説明です。
但し、当ページは開発環境を構築する事を前提に必要最低限の情報を提供しており、動作を保障するものではありません。
また、当ページでは以下環境で説明を行います。
OS:Linux(CentOS)
JDKダウンロードページ(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)にアクセスし、JDKのインストーラを入手します。
まず「Accept LicenseAgreement」を選択し、インストールファイルをダウンロード可能な状態にします。
利用している端末に合ったものを選択(ここではjdk-8u101-linux-x64.tar.gz)し、ダウンロードします。
※2016/10/8時点の最新バージョン
ダウンロードしたファイルを展開します。
インストールを行うため、「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は複数のバージョンが端末内にインストールされている場合があるので、シンボリックリンクでバージョンを使い分けます。
シンボリックリンクを使うと深い階層に実態となるファイル・フォルダがあっても、抽象的に短いパスで表現できます。
また、実態となるパスを変更する場合は、シンボリックリンク自体のパスは変更せずに実態のパスのみ変更することができます。
たとえば、シンボリックリンク「/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]#
「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」コマンドのオプション「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]#