电脑技术学习

Linux上安装Oracle汉字乱码问题的解决方法

dn001

一. 安装JDK

在/tmp下建立一个临时的文件夹

[root@lsjlinux root]# cd /tmp

[root@lsjlinux root]# mkdir javacn

[root@lsjlinux tmp]# cd javacn

  

从sun网站上下载j2sdk-1_4_2_02-linux-i586.bin并保存到/tmp/javacn

  

给文件加上可执行的权限

[root@lsjlinux javacn]# chmod 755 j2sdk-1_4_2_02-linux-i586.bin

  

执行文件安装JDK

[root@lsjlinux javacn]# ./j2sdk-1_4_2_02-linux-i586.bin

......(一大堆的license的信息)

询问是否同意,当然选yes

.........

  

安装完后删除安装文件

[root@lsjlinux javacn]# rm -rf *.bin

  

感觉起来这个安装就是解压一下而已,解压出来的结果就是j2sdk1.4.2_02这个文件夹。

  

这个文件夹不能放在/tmp里面,要不哪天一不小心删除了怎么办,搬家并改名!

[root@lsjlinux javacn]# mv j2sdk1.4.2_02 /usr/j2sdk

  

现在JDK还不能算安装完成了,还要设置一下环境变量:

  

[root@lsjlinux usr]# cd /etc

[root@lsjlinux etc]# vi profile

在export PATH前加入下面一段

JAVA_HOME=/usr/j2sdk

export JAVA_HOME

  

JRE=$JAVA_HOME/jre

export JRE

  

PATH=$JAVA_HOME/bin:$JRE/bin:$PATH

  

现在注销一下并重登录

  

OK,JDK安装完毕!

  

二. 安装系统字体

将附件文件解压到/tmp/javacn中,解压后的结果如下所示:

[root@lsjlinux root]# cd /tmp

[root@lsjlinux tmp]# cd javacn

[root@lsjlinux javacn]# ls -l

总用量 23184

-rw-r--r-- 1 root root 8102 1970-01-01 font.properties

drwxr-xr-x 9 root root 4096 6月 24 15:36 j2sdk1.4.2_02

-rw-r--r-- 1 root root 12642204 1970-01-01 SimSun18030.ttc

-rw-r--r-- 1 root root 10500352 1970-01-01 simsun.ttc

-rw-r--r-- 1 root root 7764 1970-01-01 sm.sh

-rw-r--r-- 1 root root 260472 1970-01-01 tahomabd.ttf

-rw-r--r-- 1 root root 265528 1970-01-01 tahoma.ttf

  

下面需要将$JRE/lib中的font.properties文件改名备份,并将/tmp/javacn中的font.properties文件拷贝到$JRE/lib中

  

[root@lsjlinux root]# cd $JRE

[root@lsjlinux jre]# cd lib

  

[root@lsjlinux lib]# mv font.properties font.properties.bak

[root@lsjlinux lib]# cp /tmp/javacn/font.properties ./

  

剩下的操作就是执行/tmp/javacn/sm.sh了。

在执行sm.sh后系统后自动重启,所以在执行下面的操作前请一定保存正在进行的工作!

[root@lsjlinux root]# cd /tmp

[root@lsjlinux tmp]# cd javacn

[root@lsjlinux javacn]# ./sm.sh

bash: ./sm.sh: 权限不够

[root@lsjlinux javacn]# chmod 755 sm.sh

[root@lsjlinux javacn]# ./sm.sh

  

此处操作系统会重新启动。

  

第二部分操作完成。

  

三. 设置操作系统字体

重新启动登录后,按如下步骤操作:

(下面的步骤是KDE里的,GNOME里应该差不多)

开始->控制中心->外观和主题->字体

点调整所有字体,按如下界面中配置,选中字体复选框,并在列表中选择Simsun(实际上这个就是大家在Window里很熟悉的宋体),字体样式不用管它,大小复选框选中,并在列表中选择9,配置完成后点确定。

  

回到上一层窗口点应用并关闭窗口。

  

这个好解决,点终端控制台的菜单:

设置->字体->定制

弹出如下窗口:

左边列表中选择Monospace,大小一列中选择9即可。

设置完了千万要记得保存一下:

设置->保存设置

  

四. 安装Oracle

此时切换到Oracle用户,运行./runInstaller,出来的界面应该是亲切的中文界面了,如果还是乱码请检查上面的步骤。

安装Oracle的步骤在此就不费笔墨了。

不过安装完后还有一点小小的尾巴工程。

安装完后运行dbca创建数据库时发现又是乱码,这个在网上没有资料提到过,偶经过反复摸索才找到了问题所在,原来Oracle安装后它会装上自己的JDK,它的几个工具用得都是它自己的JDK,咱们前面所做的努力都没有起作用。

不过这个好解决,改!

  

只需更改红色的部分,其他地方不需要更改

  

先改dbca

bash-2.05$ cd $ORACLE_HOME

bash-2.05$ cd bin

  

bash-2.05$ vi dbca

将最后一段

# Run DBCA

$JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS

PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

改成:

# Run DBCA

java -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS

PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

  

再改oemapp

bash-2.05$ vi oemapp

也是最后一段

if [ "$1" = "ocmcli" ]

then

exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca

tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q

UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"

"$5" "$6" "$7" "$8" "$9"

else

exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca

tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q

UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6

$7 $8 $9

fi

  

改成:

if [ "$1" = "ocmcli" ]

then

java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca

tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q

UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"

"$5" "$6" "$7" "$8" "$9"

else

java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca

tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q

UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6

$7 $8 $9

Fi

  

最后,是netca

bash-2.05$ vi netca

还是最后一段

# Run Net Configuration Assistant

cd $NETTOOLSDIR

$JRE -classpath $CLASSPATH oracle.net.ca.NetCA $*

exit $status

  

改成

# Run Net Configuration Assistant

cd $NETTOOLSDIR

java -classpath $CLASSPATH oracle.net.ca.NetCA $*

exit $status