nEST's SPACE-Blog

    コンピュータ、ミニベロ、旅行などが主なテーマの日記帳です

    JDK1.7インストール時メモ(alternativesコマンド含む)


    Java SE 7の公式アップデート終了のお知らせもあって超今更感。折角書いたから載せるけど。

    JDK1.6を使用している環境に、JDK1.7をインストールした時のメモ。
    その際にalternativesコマンドを使用すると、バージョン違いのJavaを共存&切り替え可能らしいと聞いたので、一緒に進めてみた。完全な処理かはちと怪しいかも。


    ●対象端末
    CentOS5.9 64bit

    使用中のJavaのバージョンを確認する

    コマンド[java -version]で、使用中のJavaのバージョンを確認できる。
    この時点のJavaのバージョンは"1.6.0_33"である事が分かった。
    [root@localhost ~]# java -version
    java version "1.6.0_33"
    Java(TM) SE Runtime Environment (build 1.6.0_33-b03)
    Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
    [root@localhost ~]#

    ●alternativeコマンドで、インストール済みJavaのバージョンと適用状況を確認する
    コマンド[alternatives --config java][alternatives --display java]で、インストール済みJDKのバージョンと適用状況を確認できる。
    使用中のJavaは登録されておらず、別のJavaが登録されている事が分かった。
    [root@localhost ~]# alternatives --config java

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

    選択 コマンド
    -----------------------------------------------
    *+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java

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

    [root@localhost ~]# alternatives --display java
    java - ステータスは手動です。
    リンクは現在 /usr/lib/jvm/jre-1.4.2-gcj/bin/java を指しています。
    /usr/lib/jvm/jre-1.4.2-gcj/bin/java - 優先項目 1420
    スレーブ keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
    スレーブ orbd: (null)
    スレーブ pack200: (null)
    スレーブ rmid: (null)
    スレーブ rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
    スレーブ servertool: (null)
    スレーブ tnameserv: (null)
    スレーブ unpack200: (null)
    スレーブ jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
    スレーブ jre: /usr/lib/jvm/jre-1.4.2-gcj
    現在の「最適」バージョンは /usr/lib/jvm/jre-1.4.2-gcj/bin/java です。
    [root@localhost ~]#

    ●確認結果にJDK1.6が入ってないので、下記コマンドで分かる範囲で埋めた(各コマンドが1行に収まってないと実行エラーになる。コピペする場合は"@"を削除して1行にまとめる)。
    /usr/sbin/alternatives @
    --install /usr/bin/java java /usr/java/jdk1.6.0_33/bin/java 100 @
    --slave /usr/bin/keytool keytool /usr/java/jdk1.6.0_33/keytool @
    --slave /usr/bin/orbd orbd /usr/java/jdk1.6.0_33/orbd @
    --slave /usr/bin/pack200 pack200 /usr/java/jdk1.6.0_33/pack200 @
    --slave /usr/bin/rmid rmid /usr/java/jdk1.6.0_33/rmid @
    --slave /usr/bin/rmiregistry rmiregistry /usr/java/jdk1.6.0_33/rmiregistry @
    --slave /usr/bin/servertool servertool /usr/java/jdk1.6.0_33/servertool @
    --slave /usr/bin/tnameserv tnameserv /usr/java/jdk1.6.0_33/tnameserv @
    --slave /usr/bin/unpack200 unpack200 /usr/java/jdk1.6.0_33/unpack200

    /usr/sbin/alternatives @
    --install /usr/bin/javac javac /usr/java/jdk1.6.0_33/bin/javac 16033 @
    --slave /usr/bin/jar jar /usr/java/jdk1.6.0_33/bin/jar @
    --slave /usr/bin/jarsigner jarsigner /usr/java/jdk1.6.0_33/bin/jarsigner @
    --slave /usr/bin/javadoc javadoc /usr/java/jdk1.6.0_33/bin/javadoc @
    --slave /usr/bin/javah javah /usr/java/jdk1.6.0_33/bin/javah @
    --slave /usr/bin/rmic rmic /usr/java/jdk1.6.0_33/bin/rmic

    その結果JDK1.6が追加され、下記の状態となった。
    なお[# alternatives --display java]で表示される優先項目は、数値が大きい方が優先される。
    [root@localhost ~]# alternatives --config java
    2 プログラムがあり 'java' を提供します。

    選択 コマンド
    -----------------------------------------------
    *+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
    2 /usr/java/jdk1.6.0_33/bin/java

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

    [root@localhost ~]# alternatives --display java
    java - ステータスは手動です。
    リンクは現在 /usr/lib/jvm/jre-1.4.2-gcj/bin/java を指しています。
    /usr/lib/jvm/jre-1.4.2-gcj/bin/java - 優先項目 1420
    スレーブ keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
    スレーブ orbd: (null)
    スレーブ pack200: (null)
    スレーブ rmid: (null)
    スレーブ rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
    スレーブ servertool: (null)
    スレーブ tnameserv: (null)
    スレーブ unpack200: (null)
    スレーブ jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
    スレーブ jre: /usr/lib/jvm/jre-1.4.2-gcj
    /usr/java/jdk1.6.0_33/bin/java - 優先項目 100
    スレーブ keytool: /usr/java/jdk1.6.0_33/keytool
    スレーブ orbd: /usr/java/jdk1.6.0_33/orbd
    スレーブ pack200: /usr/java/jdk1.6.0_33/pack200
    スレーブ rmid: /usr/java/jdk1.6.0_33/rmid
    スレーブ rmiregistry: /usr/java/jdk1.6.0_33/rmiregistry
    スレーブ servertool: /usr/java/jdk1.6.0_33/servertool
    スレーブ tnameserv: /usr/java/jdk1.6.0_33/tnameserv
    スレーブ unpack200: /usr/java/jdk1.6.0_33/unpack200
    スレーブ jre_exports: (null)
    スレーブ jre: (null)
    現在の「最適」バージョンは /usr/lib/jvm/jre-1.4.2-gcj/bin/java です。
    [root@localhost ~]#

    JDK1.7のインストール・alternativesの設定

    Java SE Development Kit 7 Downloadsから、JDK1.7(jdk-7u79-linux-x64.rpm)をダウンロード。
    その後[# rpm -Uvh jdk-7u79-linux-x64.rpm]で、既存のJavaを上書きインストールした。

    ※[# rpm -ivh jdk-7u79-linux-x64.rpm]の場合、"/etc/init.d/jexec(実体は/etc/rc.d/init.d/jexec)"の競合が起きた。念のため/etc/init.d/jexecをリネームして逃がした。
    [root@localhost ~]# rpm -ivh '/root/Desktop/jdk-7u79-linux-x64.rpm'
    準備中... ########################################### [100%]
    ファイル /etc/init.d/jexec (パッケージ jdk-1.7.0_79-fcs.x86_64 から) は、パッケージ jdk-1.6.0_33-fcs.x86_64 からのファイルと競合しています。

    ●JDK1.7をインストールした後でも項目が増えていない模様。
    [root@localhost ~]# alternatives --config java

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

    選択 コマンド
    -----------------------------------------------
    *+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
    2 /usr/java/jdk1.6.0_33/bin/java

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

    そのためJDK1.6と同様、分かる範囲で埋めた。
    /usr/sbin/alternatives @
    --install /usr/bin/java java /usr/java/jdk1.7.0_79/bin/java 170751 @
    --slave /usr/bin/keytool keytool /usr/java/jdk1.7.0_79/keytool @
    --slave /usr/bin/orbd orbd /usr/java/jdk1.7.0_79/orbd @
    --slave /usr/bin/pack200 pack200 /usr/java/jdk1.7.0_79/pack200 @
    --slave /usr/bin/rmid rmid /usr/java/jdk1.7.0_79/rmid @
    --slave /usr/bin/rmiregistry rmiregistry /usr/java/jdk1.7.0_79/rmiregistry @
    --slave /usr/bin/servertool servertool /usr/java/jdk1.7.0_79/servertool @
    --slave /usr/bin/tnameserv tnameserv /usr/java/jdk1.7.0_79/tnameserv @
    --slave /usr/bin/unpack200 unpack200 /usr/java/jdk1.7.0_79/unpack200 @
    --slave /usr/lib/jvm-exports/jre jre_exports /usr/java/jdk1.7.0_79/jre/lib @
    --slave /usr/lib/jvm/jre jre /usr/java/jdk1.7.0_79/jre

    /usr/sbin/alternatives @
    --install /usr/bin/javac javac /usr/java/jdk1.7.0_79/bin/javac 170752 @
    --slave /usr/bin/jar jar /usr/java/jdk1.7.0_79/bin/jar @
    --slave /usr/bin/jarsigner jarsigner /usr/java/jdk1.7.0_79/bin/jarsigner @
    --slave /usr/bin/javadoc javadoc /usr/java/jdk1.7.0_79/bin/javadoc @
    --slave /usr/bin/javah javah /usr/java/jdk1.7.0_79/bin/javah @
    --slave /usr/bin/rmic rmic /usr/java/jdk1.7.0_79/bin/rmic

    その結果JDK1.7がリストに追加され、JDK1.7を選択する事ができた。
    [root@localhost ~]# alternatives --config java

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

    選択 コマンド
    -----------------------------------------------
    1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
    2 /usr/java/jdk1.6.0_33/bin/java
    *+ 3 /usr/java/jdk1.7.0_79/bin/java

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

    [root@localhost ~]# alternatives --display java
    java - ステータスは手動です。
    リンクは現在 /usr/java/jdk1.7.0_79/bin/java を指しています。
    /usr/lib/jvm/jre-1.4.2-gcj/bin/java - 優先項目 1420
    スレーブ keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
    スレーブ orbd: (null)
    スレーブ pack200: (null)
    スレーブ rmid: (null)
    スレーブ rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
    スレーブ servertool: (null)
    スレーブ tnameserv: (null)
    スレーブ unpack200: (null)
    スレーブ jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
    スレーブ jre: /usr/lib/jvm/jre-1.4.2-gcj
    /usr/java/jdk1.6.0_33/bin/java - 優先項目 100
    スレーブ keytool: /usr/java/jdk1.6.0_33/keytool
    スレーブ orbd: /usr/java/jdk1.6.0_33/orbd
    スレーブ pack200: /usr/java/jdk1.6.0_33/pack200
    スレーブ rmid: /usr/java/jdk1.6.0_33/rmid
    スレーブ rmiregistry: /usr/java/jdk1.6.0_33/rmiregistry
    スレーブ servertool: /usr/java/jdk1.6.0_33/servertool
    スレーブ tnameserv: /usr/java/jdk1.6.0_33/tnameserv
    スレーブ unpack200: /usr/java/jdk1.6.0_33/unpack200
    スレーブ jre_exports: (null)
    スレーブ jre: (null)
    /usr/java/jdk1.7.0_79/bin/java - 優先項目 170751
    スレーブ keytool: /usr/java/jdk1.7.0_79/keytool
    スレーブ orbd: /usr/java/jdk1.7.0_79/orbd
    スレーブ pack200: /usr/java/jdk1.7.0_79/pack200
    スレーブ rmid: /usr/java/jdk1.7.0_79/rmid
    スレーブ rmiregistry: /usr/java/jdk1.7.0_79/rmiregistry
    スレーブ servertool: /usr/java/jdk1.7.0_79/servertool
    スレーブ tnameserv: /usr/java/jdk1.7.0_79/tnameserv
    スレーブ unpack200: /usr/java/jdk1.7.0_79/unpack200
    スレーブ jre_exports: /usr/java/jdk1.7.0_79/jre/lib
    スレーブ jre: /usr/java/jdk1.7.0_79/jre
    現在の「最適」バージョンは /usr/java/jdk1.7.0_79/bin/java です。
    [root@localhost ~]#

    ●最後にバージョン確認。JDK1.7が必要なソフトも無事に起動する事が出来たので、これで作業は完了。
    [root@localhost ~]# java -version
    java version "1.7.0_79"
    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
    [root@localhost ~]#

     
     
     
    関連記事
    スポンサーサイト
    1. 2015/05/02(土) 21:10:58|
    2. Linux
    3. | トラックバック:0
    4. | コメント:0
    <<ゴールデンウィーク 東京都庁へ行ってきました | ホーム | JDKインストールミスによりtomcatが起動しなかった現象について>>

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバック URL
    http://nestblog.blog.fc2.com/tb.php/99-27d5b61a
    この記事にトラックバックする(FC2ブログユーザー)

    プロフィール

    管理人NEST

    Author:管理人NEST
    nEST's SPACEへようこそ。
    書きたい事を適当に書き連ねています。
    HPもよろしく。

    最新記事

    最新コメント

    最新トラックバック

    月別アーカイブ

    カテゴリ

    未分類 (1)
    GAME (20)
    雑記 (44)
    PostgreSQL (5)
    Windows (35)
    サイト運営 (6)
    MANGA (1)
    スマートフォン (19)
    Oracle (3)
    健康 (2)
    Linux (14)
    仮想化 (2)
    車 (7)
    ミニベロ (8)
    自転車旅行 (2)
    自転車パーツ・ウェア (1)
    自転車イベント (2)

    ブログ用カウンター

    検索フォーム

    RSSリンクの表示

    リンク

    このブログをリンクに追加する

    Powered By FC2ブログ

    今すぐブログを作ろう!

    Powered By FC2ブログ