2008年12月27日

Ubuntu/64bit執行Java Webstart程式

最近重新回到Ubuntu桌面環境工作,不管是工作站或筆電都換上Ubuntu 8.10,也花不少時間調校。雖然Ubuntu 8.10已經有非常多的進步,安裝好大致上硬體支援、中文環境都沒什麼問題,但額外安裝的一些軟體就必須自己動手調整。最近justfly也在玩Ubuntu 8.10,但我相信會有許多荊棘正在消磨他的熱情:D。

最近維護的一個專案『程式設計學習網』,是前陣子在XP/Vista下以Eclipse+Tomcat+Groovy打造的Web應用系統,最近打算嘗試將它也移植到Ubuntu下開發,理論上Java開發的程式要跨平台不難,確實Web的部份很容易就可以在Linux下啟動,Tomcat甚至連換版本都不用,而Eclipse也只需要下載for Linux/64bit的版本,重新安裝plug-ins即可。

但麻煩的就在用Java Webstart技術開發,提供寫程式練習的編輯器,它透過Java WS啟動Swing開發的Loader,並下載jEdit相關檔案及教材XML檔,接著啟動jEdit進入練習程式的環境。這個Client端AP程式的移植並沒想像容易,遇到的問題還不少。

在先前的版本,如Ubuntu/64bit 8.04、7.10測試時,Java WS啟動後就沒反應了。目前以Ubuntu/64bit 8.10測試,初步發現Java WS可以順利執行,並且是以32bit方式運作(需要ia32-sun-java6-bin套件),只是很快又發生錯誤訊息,是UnknownHostException的錯誤,線上找到一篇網誌馬上解惑,就是安裝lib32nss-mdns套件即可,這個套件應該是提供32bit程式進行DNS查詢之用。



解決了DNS查詢問題之後,還有中文字變成方塊的問題,這就需要另一篇教學的幫忙,步驟主要是將uming.ttf這個中文字型加到JRE的字型目錄中。以下為轉貼的步驟說明,基本上在8.10只要照著做即可。
在 /usr/lib/jvm/java-6-sun/jre/lib/fonts 建立目录 fallback
sudo mkdir /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback
将 uming.ttf 链接到 fallback 中
sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
进入 fallback ,使用 mkfontscale 生成 fonts.scale
cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
sudo mkfontscale
回到上一层目录 /usr/lib/jvm/java-6-sun/jre/lib/fonts/
cd ..
使用su命令,以root用户操作,如果忘记密码,使用 sudo passwd root 进行重新设置
su
将 fonts.scale 的内容加到 fonts.dir 中
cat fallback/fonts.scale >> fonts.dir

使用Java WS啟動的Loader畫面,執行使用Jakarta Commons HttpClient為基礎開發的套件自動下載(jEdit&Plug-ins),看起來很正常。


但啟動之後的編輯器,缺少了左方和下方的Plug-ins畫面,查看jEdit的activity.log發現載入階段有錯誤發生:
[debug] ActionSet: Loading actions from jar:file://home/kyle/myplweb/jEdit/works
pace/jars/pl-buffertabs.jar!/actions.xml
[error] URL: java.net.UnknownHostException: home



這個問題還沒辦法確定原因,從jEdit官方下載的jEdit 4.2source,編譯好之後執行,加入Plug-in一切正常。差別是載入Plug-in設定檔的路徑,必須是file:/home/...而不是file://home/...,因為Java支援的這個file protocol,只有在file:/的時候會從local的檔案系統尋找檔案,當斜線有兩條file://時,就會變成從遠端檔案主機找尋(FTP),下個階段再來探討這個問題如何解決。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!