Sun製JREをインストールしてSun製を優先 on F7

Fedora では基本的に gcjjre がインストールされるわけですが,Sun 製のを使いたくなりました。Sun のサイトから JRE をダウンロードしてインストール,までは普通にうまくいきますが,このままでは gcj のものが優先されてしまいます。

最近の Linux では,このような(各種競合する)ソフトウェアで何を使うか,というのを設定する alternatives というものがあるみたいなのでそれで Sun 製のものを優先するようにしてみます。

このへんを参考に,

# JRE=/usr/java/jre1.5.0_12
(頻出するので変数に設定しておく)

# alternatives \
    --install /usr/bin/java java $JRE/bin/java 2000                \
    --slave /usr/bin/keytool keytool $JRE/bin/keytool              \
    --slave /usr/bin/rmiregistry rmiregistry $JRE/bin/rmiregistry  \
    --slave /usr/lib/jvm-exports/jre jre_exports $JRE/lib          \
    --slave /usr/lib/jvm/jre jre $JRE

のようにしました。gcj のものが優先度 1500 だったので 2000 にしました。

slave に指定しているものは gcj のものに合わせました。このへん,Fedora のバージョンとかによって違うかもしれませんので,設定する前に「alternatives --display java」で確認してから環境にあわせてみてください。


これで Sun 製が優先されたのか確かめてみましょう。

# alternatives --display java

java - status is auto.
 link currently points to /usr/java/jre1.5.0_12/bin/java
/usr/lib/jvm/jre-1.5.0-gcj/bin/java - priority 1500
 slave keytool: /usr/lib/jvm/jre-1.5.0-gcj/bin/keytool
 slave rmiregistry: /usr/lib/jvm/jre-1.5.0-gcj/bin/rmiregistry
 slave jre_exports: /usr/lib/jvm-exports/jre-1.5.0-gcj
 slave jre: /usr/lib/jvm/jre-1.5.0-gcj
/usr/java/jre1.5.0_12/bin/java - priority 2000
 slave keytool: /usr/java/jre1.5.0_12/bin/keytool
 slave rmiregistry: /usr/java/jre1.5.0_12/bin/rmiregistry
 slave jre_exports: /usr/java/jre1.5.0_12/lib
 slave jre: /usr/java/jre1.5.0_12
Current `best' version is /usr/java/jre1.5.0_12/bin/java.

無事自動的に Sun のものが選ばれるようになりました。

当然のように日本語が豆腐になったので,手前味噌ながら【JRE 1.6 で日本語が豆腐 on FC6 - daily dayflower】のとおり日本語フォントをインストールしたらきちんと使えるようになりました(あいかわらず fontconfig.* はいじってませんが)。