2011年11月25日 星期五

openSUSE 12.1 體驗報告(7)

Java 之章

因為授權緣故,openSUSE 12.1 無法由官方提供 Oracle Java
而搭配了 openJDK
基本上使用 openjdk 是沒什麼問題的

您可以先驗證一下您的 java 版本
http://java.com/zh_TW/download/installed.jsp

openjdk 被驗證為 version 6 update 22

看看中國信託的網站:
http://www.win168.com.tw


雖然下方個股資訊是亂碼,但這不是字型設定問題,而是編碼問題,您可以參考舊文
看看師範大學物理系的物理教學示範實驗教室
http://www.phy.ntnu.edu.tw/demolab/

看看 PhET (科羅拉多大學的互動式教學計劃)
http://phet.colorado.edu/
有中文網頁
http://phet.colorado.edu/zh_TW/
可在網頁上執行

也可以下載到電腦上執行,
如果下載的是 *.jnlp ,用 itweb-javaws 執行


如果下載的是 *.jar ,用 java -jar 來執行


Sweet Home 3D 也可以線上執行

我覺得其實感覺還是蠻 OK 的

如果您真的一定要安裝 Oracle Java 當然也是可以
http://http://java.com/zh_TW/ 下載 JAVA

有 RPM 和 自我解壓縮檔,我的建議:不要選 RPM
依照電腦系統架構選擇 32 位元或 64 位元

會提示要開啟一個 bin 檔,請選擇儲存檔案

請注意:
以下是以 64 位元的自我壓縮檔示範
如果您不是 64 位元架構的系統,下載的檔名會不同,
並請將範例中的 lib64 自行改成 lib

切換到檔案下載存放位置,例如 ~/Downloads/
$ cd ~/Downloads/

將下載的檔案加上執行權限
$ chmod +x jre-6u29-linux-x64.bin

執行此檔案,會自動解壓縮
$ ./jre-6u29-linux-x64.bin

產生一個資料夾 jre1.6.0_29
將此資料夾移到 /usr/lib64/jvm/ 底下
$ su
密碼:
# mv jre1.6.0_29 /usr/lib64/jvm/

接下來要用 update-alternatives 來進行設定
說起來有點麻煩,就用下面的 script 吧!
java-alt.sh
#!/bin/bash
####Set your variables here####
JAVADIR="jre1.6.0_29"
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/lib/$PLUGINDIR/libnpjp2.so $PRIORITY \
--slave /usr/bin/javaws javaws /usr/$SYSLIB/jvm/$JAVADIR/bin/javaws

update-alternatives --auto jre_1.6.0

update-alternatives --install /usr/$SYSLIB/jvm/jre-1.6.0 jre_1.6.0 /usr/$SYSLIB/jvm/$JAVADIR $PRIORITY

將上面的文字複製,存成文字檔(例如:java-alt.sh)
要使用之前先修改文字檔中的
JAVADIR="jre1.6.0_29" ---這就是您解壓縮後複製到 /usr/lib(64)/jvm/ 下的目錄
SYSLIB="lib64" ---64 位元的函式庫,若您是 32 位元的系統,請用 "lib"
PRIORITY="18000" ---優先順序,愈大愈優先,因為原本的 openjdk 的優先順序是 17105
然後用 root 執行
$ su
密碼:
# sh java-alt.sh

這樣就安裝完成了

您也可以在此下載這個檔案:http://dl.dropbox.com/u/6331820/java-alt.sh
注意:請務必先依照上面說明修改設定

若要改用原本的 openjdk 可用
# update-alternatives --config java

選擇要使用的 java
# update-alternatives --config javaplugin

選擇要使用的 java-plugin

這時候就會變成 Oracle 版本的 Java 了

不過中文的顯示有點問題

我們可以用 openSUSE 的 java 字型設定 script
因為原本沒有 fontconfig.SuSE.properties 這個檔案
所以先摸一下,有這個檔案後就可以觸發產生適當的字型設定檔
或你也可以用 fallback 的方法,請參考舊文
# touch touch /usr/lib64/jvm/jre1.6.0_29/lib/fontconfig.SuSE.properties
# SuSEconfig --module fonts
Starting SuSEconfig, the SuSE Configuration Tool...
Running module fonts only
Reading /etc/sysconfig and updating the system...
Executing /sbin/conf.d/SuSEconfig.fonts...
Configure X11 to use available CID-keyed fonts ...
Creating fonts.{scale,dir} files .........
/etc/fonts/suse-font-dirs.conf unchanged
/etc/fonts/suse-hinting.conf unchanged
/etc/fonts/suse-bitmaps.conf unchanged
Creating cache files for fontconfig .............................
Creating 32bit cache files for fontconfig .............................
generating java font setup
Warning: cannot find a sans serif Japanese font. Japanese in Java might not work.
Warning: cannot find a monospaced Japanese font. Japanese in Java might not work.
Warning: cannot find a serif Japanese font. Japanese in Java might not work.
Warning: cannot find a sans serif Korean font. Korean in Java might not work.
Warning: cannot find a serif Korean font. Korean in Java might not work.
writing /usr/lib64/jvm/jre/lib/fontconfig.SuSE.properties
Finished.

再啟動就可以看見中文了

再驗證一下

您以經裝上了最新的穩定版 Java

您或許想做一些桌面整合
# cd /usr/lib64/jvm/jre1.6.0_29/lib/desktop/
# cp applications/* /usr/share/applications/
# cp -r icons/* /usr/share/icons/

其中兩個是預設不顯示在選單中的
只有 Java 控制中心會顯示在選單中,稍做修改,
讓他出現在 系統--組態 中,並自行加入翻譯
sun_java.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Java
GenericName=Java Control Panel
GenericName[zh_TW]=Java 控制中心
Comment=Java Control Panel
Comment[zh_TW]=Java 控制中心
Exec=jcontrol
Icon=sun-jcontrol.png
Terminal=false
Type=Application
Categories=Settings;System;SystemSetup;

2 則留言:

玛格丽特苏 提到...

眼珠大,安装甲骨文的java不用那么麻烦的,在software.opensuse.org/search里打开”允许用户的私人车库“选项就能找到啦,有人做了一键安装的。

swyear 提到...

瑪格麗特蘇:
謝謝您提供的方法,我只是想,總有一天會要自己裝的,也順便了解一下 update-alternative 的用法。