2012年5月9日 星期三

在 OpenSUSE 12.1 安裝 Sun JDK 6


之前做過小小的嘗試,其實若安裝 OpenJDK,仍然是可以編譯 Android 2.3 的。

但是,若編譯的 Android 原始碼裡包含了 CTS 的部份,就會出現一堆編譯失敗的訊息。於是,我終究試著在 OpenSUSE 12.1 裡自行安裝 Sun JDK 6。

結果是,在 OpenSUSE 12.1 的套件庫裡找不到 Sun JDK 6,爬文之後似乎自己下載是最簡單的了。後來參考了這篇文章,我下載了 Sun JDK 1.6.0_31 (64bit) 的 jdk-6u31-linux-x64.bin 這個檔案。將它解開之後,得到一個 jdk1.6.0_31 目錄,並將它搬移到 /usr/lib64/jvm 目錄下。

接著編輯一個 java-alt.sh 檔案,內容如下:

#!/bin/bash
####Set your variables here####
JAVADIR="jdk1.6.0_31"
SYSLIB="lib64"
PRIORITY="18000"
########

if [ $SYSLIB == "lib64" ] ; then
PLUGINDIR="amd64"
else
PLUGINDIR="i386"
fi

update-alternatives --auto java

update-alternatives --install /usr/bin/java java /usr/$SYSLIB/jvm/$JAVADIR/bin/java $PRIORITY \
--slave /usr/$SYSLIB/jvm/jre jre /usr/$SYSLIB/jvm/$JAVADIR \
--slave /usr/$SYSLIB/jvm-exports/jre jre_exports /usr/$SYSLIB/jvm/$JAVADIR \
--slave /usr/bin/keytool keytool /usr/$SYSLIB/jvm/$JAVADIR/bin/keytool \
--slave /usr/bin/orbd orbd /usr/$SYSLIB/jvm/$JAVADIR/bin/orbd \
--slave /usr/bin/policytool policytool /usr/$SYSLIB/jvm/$JAVADIR/bin/policytool \
--slave /usr/bin/rmid rmid /usr/$SYSLIB/jvm/$JAVADIR/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/$SYSLIB/jvm/$JAVADIR/bin/rmiregistry \
--slave /usr/bin/servertool servertool /usr/$SYSLIB/jvm/$JAVADIR/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/$SYSLIB/jvm/$JAVADIR/bin/tnameserv \
--slave /usr/share/man/man1/java.1.gz java.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/java.1 \
--slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/keytool.1 \
--slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/orbd.1 \
--slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/policytool.1 \
--slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/rmid.1 \
--slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/rmiregistry.1 \
--slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/servertool.1 \
--slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/$SYSLIB/jvm/$JAVADIR/man/man1/tnameserv.1

update-alternatives --auto javaplugin

update-alternatives --install /usr/$SYSLIB/browser-plugins/javaplugin.so \
javaplugin /usr/$SYSLIB/jvm/$JAVADIR/jre/lib/$PLUGINDIR/libnpjp2.so $PRIORITY \
--slave /usr/bin/javaws javaws /usr/$SYSLIB/jvm/$JAVADIR/bin/javaws

update-alternatives --auto jdk_1.6.0

update-alternatives --install /usr/$SYSLIB/jvm/jdk-1.6.0 jdk_1.6.0 /usr/$SYSLIB/jvm/$JAVADIR $PRIORITY 

然後,以管理者身份執行該腳本就可以將系統的 Java JDK 安裝成 Sun JDK 6 了。

沒有留言:

張貼留言