鱼香四溢抹茶曲奇千千:Mandriva2008系統JDK1.6漢字亂碼問題的解決 | 潛龍勿用

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 19:21:37

Mandriva2008系統JDK1.6漢字亂碼問題的解決

    今天在我的Mandriva2008系統下裝了一個Oracle 10g客戶端,以方便Oracle數據庫的管理與維護,本以為Oracle 10g的Linux版客戶端對各大Linux發行版都比較友好,不會有什麼問題的,結果卻不如人意,剛一運行./runInstaller就說我的系統不兼容,拒絕安裝。錯誤提示如下:
[shine@linux_t61 client]$ ./runInstaller
正在启动 Oracle Universal Installer…

正在检查安装程序要求…

检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      未通过 <<<<

正在退出 Oracle Universal Installer。您可以在 /home/shine/oracle/oraInventory/logs/installActions2008-04-11_04-12-36PM.log 中找到本次会话的日志

不得已,只能強行執行./runInstaller -ignoreSysPrereqs
這個參數表示讓安裝程序忽略操作系統版本檢查,盡管Oracle官方資料不建議這麼做,恐嚇大家,說這麼做有可能出現無法預料的嚴重後果,但是咱們也不可能為了裝一個Oracle客戶端去換操作系統吧?所以不管它,繼續。
終于出現安裝界面了,不過令人困惑的問題又來了,安裝界面上的漢字一部分正常,另一部分則是方框,部分亂碼,比較邪門了。仔細一想,有可能是這個安裝程序界面中的窗體和面板等指定了不同的字體,而在JDK字體設置中只能解析部分安裝程序所需的字體,因而出現這種局部籌碼的問題,我注意觀察了一下,基本上所有的button上的漢字都正常,而一些提示框和說明文字則都顯示方框。
既然分析了原因,就著手解決吧,Oracle 10g客戶端安裝時所使用的JDK是其自帶的JDK1.4.2,網上有很多資料都說要將它自帶的jre找到(全是jar包),然後解包,找到jre/lib/fonts目錄,將裡面的font.properties.zh_CN文件改名為font.properties,替換掉原來那個默認的文件。這種方法看著就繁瑣,我認為應該是可以自己指定一個JDK的,于是google 了一下,果然有一個參數是可以指定JDK的,于是重新運行安裝腳本:
./runInstaller -ignoreSysPrereqs -jreLoc /usr/local/java/jre
-jreLoc這個參數就是讓我們為安裝程序指定一個JRE,我下載了一個jdk1.6,並安裝在/usr/local/java目錄下,但是漢字亂碼問題還是依舊,我們還需要修改/usr/local/java/jre/lib/fonts目錄下的內容。最簡單的做法是做一個軟鏈接,將系統的ttf字體目錄鏈過來即可。由于我之前已經在系統中安裝了microsoft的tahoma、宋體、仿宋體、黑體、楷體等字體在/usr/share/fonts/drakconf/ttf目錄下,因此我直接將之鏈接到jdk下就行了:
ln -sf /usr/share/fonts/drakconf/ttf /usr/local/java/jre/lib/fonts/fallback
完成後,再次運行./runInstaller -ignoreSysPrereqs -jreLoc /usr/local/java/jre
這個時候,安裝界面顯示的就全部是正常的漢字了,只不過居然是楷體,比較醜陋,這個比較好辦,做軟鏈接的時候只需要將宋體字體文件鏈過來就行了。
安裝完了之後,運行ORACLE企業管理器,發現居然又是局部籌碼,這個好解決,網上的資料全部是告訴大家修改oemapp文件,將裡面的java執行文件的路徑換掉,我覺得這樣做也很麻煩,而且像這樣每運行一個Oracle腳本就得要改一個,如果有100個腳本,那不得累死?其實辦法很簡單,找到oracle/product/10.2.0/client/jdk目錄,把它幹掉,直接rm -rf吧。這樣再運行oemapp就一切正常了,當然運行之前你得先設置$JAVA_HOME環境變量,我將之設置在了/etc/profile文件裡。
好了,讓網上的那些復雜的解決辦法都見鬼去吧。。。以後不管運行什麼JAVA應用程序,應該都不會現再出現亂碼問題了。