很多次碰到这样的情况,不论是生产环境还是实验环境,在linux上安装oracle的时候,想要在oracle的DBCA或EM窗口中显示中文,可是即便是操作系统的语言安装并设置了中文,但这些OUI命令一执行就是满满一窗口的“方块字”,好几次都是去因为这个浪费时间,所以在linux上指定语言为英文了事,至少窗口显示英文还可以看的懂,可是次数多了之后还是挺郁闷的,难道显示个中文就这么麻烦吗,所以抽空写了这篇文章以记录。我的环境是CentOS 5.5+Oracle 10g,以此演示。
上面这张截图就是典型案例,看着那一行行的“方块字”,oracle还真有心,知道中国人写的是方块字,所以出这么一行行的方块字给我们。可问题是尼玛这谁看的懂啊,算了,抱怨解决不了任何问题,先解决再说吧。乱码的问题,归根是因为系统中的JAVA找不到匹配的中文字体,既然找不到,那就想办法帮它找到。首先,我先下载中文字体。
然后使用xftp等工具上传到Linux上去,
找到oracle的JRE路径,我的是在/u01/product/10.2.0/db_1/jre/1.4.2,找到该路径,在路径下的lib文件中放着jre的字体文件,我们就需要修改默认的font.properties文件。
将之前下载的中文字体拷贝到/usr/share/fonts/zh_CN/TrueType/和/usr/share/fonts/chinese/TrueType/目录下,如果你在安装操作系统的时候没有安装中文,可能没有这两个目录,那你需要手工创建这两个目录。拷贝完成后,最好使用export LANG=zh_CN.UTF-8设置系统语言的环境变量,因为我已经设置就不在做此操作,
用jre目录下lib路径下的字体属性文件font.properties.zh_CN.Redhat2.1覆盖该路径下的font.properties文件,当然很多教程或者帖子都写的是font.properties.zh_CN.Redhat8.0,可是我检索了下,我的系统里没有这个文件,只有2.1的这个,所以就使用这个进行覆盖了,不过事实证明,该文件也是有效的。
执行覆盖操作之后,尝试启动Java控制台,使用命令../bin/ControlPanel,结果如下;
再执行netmgr命令,
执行DBCA,
执行NETCA,
甚至执行OUI安装,
好吧,到此问题已经解决,当然可能其他Linux上并非如此操作,也可能由于其它原因你的问题仍未解决,那你可能需要别的一些文章进行参考,目前我的环境只能演示到这一步。特将一些解决该类问题的文章链接一下,有需要的可以参考:
http://www.aiezu.com/db/oracle-10g_emdbca_block.html