红联Linux门户
Linux帮助

Linux下jdk1.5的安装及中文显示问题解决方案

发布时间:2006-02-26 20:34:47来源:红联作者:jianpdl
Windows下安装和环境设置以及中文显示可以说是傻瓜式的。但是Linux下就不会那么顺利了,尤其是中文字体的显示一直以来总是困扰着用户。Jdk 1.5.0的中文显示设置和j2sdk 1.4.x时相比已经有了很大的改变。本文着重介绍jdk1.5在Linux操作系统下的安装、环境变量设置和中文显示问题的解决。


1 首先,从sun下载jdk1.5的安装文件,一般有两种。
下载地址:http://java.sun.com/j2se/1.5.0/download.jsp
Linux RPM in self-extracting file (jdk-1_5_0-linux-i586-rpm.bin, 42.50 MB)
Linux self-extracting file (jdk-1_5_0-linux-i586.bin, 43.95 MB)

说一下两个安装文件的区别,Linux RPM in self-extracting file是一个把rpm安装包封装在压缩包内的二进制格式,在linux操作系统的命令行下,给文件加上执行的权限chmod a+x jdk-1_5_0-linux-i586-rpm.bin,然后./jdk-1_5_0-linux-i586-rpm.bin之后可以得到jdk-1_5_0-linux-i586.rpm这个rpm包。前者的好处是容易安装和维护,傻瓜式的。而后者则适合高级的用户,相当于一个zip版本的“绿色”jdk,没有安装程序,安装完之后可能需要做一些链接(具体可以参考jdk安装指南文档)。同样地给后者加上执行权限之后直接执行二进制文件即可得到jdk 1.5.0,一般用户的习惯都是将jdk放在/usr/java下,rpm安装后默认是在/usr/java下。

2 安装好之后要做的便是环境变量的设置,也可分为两种不同的情况。
第一种是对于单个用户的的环境变量设置。需要修改用户所对应的.bash_profile文件。我们可以通过vi ~/.bash_profile来编辑当前用户的bash_profile文件,当然你也可以用你自己喜欢的编辑器。在开头或者适当的地方插入一下代码:
export JAVA_HOME=/usr/java/jdk1.5.0
export CLASSPATH=.
export PATH=$JAVA_HOME/bin:$PATH
然后保存文件,注销重新登陆之后在控制台下输入java -version,如果出现一下信息则说明安装设置已经成功。
注意:此代码是为了看起来简单,所以没有加上复杂的变量引用,熟悉shell的用户可以参 照第二种方法的代码进行修改。
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)

第二种是设置Linux的全局环境变量(需要root权限),修改/etc/profile,在适当的地方加入以下代码
JAVA_HOME=/usr/java/jdk1.5.0
PATH=$JAVA_HOME=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH
修改完成后保存,注销当前用户重新登陆后按照第一种同样的方法进行测试查看是否成功。
至此,基本的安装和环境变量设置已经完成了。
至于正确显示applet的浏览器的插件安装请查看Sun的文档:
http://java.sun.com/j2se/1.5.0/install-linux.html#plugin
http://java.sun.com/j2se/1.5.0/manual_install_linux.html
接下来要说如何修改配置来正确显示中文字体。


3 最后来解决一下中文字体的显示问题。Jdk1.5.0的字体配置和1.4.x的时候相比有了很大的差别。
虽然能显示一下中文,但是有一大半是无法正常显示的方块,很不爽。下面我们就来解决这个问题。
先来看一下Sun公司对JRE1.5.0版的中文字体设置的官方说明中的一些资料:
介绍一下其字体配置文件的加载方案。其加载顺序为(JavaHome指JRE的根目录,下同)
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,OS字段可以是:
Windows: "98", "2000", "Me", "XP", "2003"。
Solaris:空。
Linux: "Sun", "RedHat", "Turbo", "SuSE"。
而Version字段指该OS的版本号。
在这些配置文件中,仅.properties文件是文本文件。其格式跟JRE1.4.2版的不同。文件分为几段,并在每段开始时标明。
我们需要关注的仅有两段:Component Font Mappings和Search Sequences。前者指定字体,后者指定要使用的properties的搜索顺序。
知道了这些,配置起来就简单了。
看了是不是有点晕,而且觉得没用?不要急下面会用到的。
先把字体文件Simsun.ttf(可以从windows下拷贝一份到linux下)拷贝到JRE的字体目录$JAVA_HOME/jre/lib/fonts下,接着编辑字体目录下的文件fonts.dir,把第一行的数字加1,然后在最后加一行加上:
simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
然后保存文件。
最后把字体配置文件改名为fontconfig.RedHat.properties这种形式(Fedora Core x也是Redhat的衍生物),把$JAVA_HOME/jre/lib下多余的fontconfig开头的文件全部移到新建的bak目录下, 做为备份,如果一次不成功还用的着。
注意:如果你的Linux不是Redhat和Fedora Core系列,请按照自己的发行版本对字体配置文件做相应的修改,参照Sun公司的资料,jds、Suse和Turbo应该没问题了。
然后再在控制台下执行ControlPanel
自己的程序也能完美的显示中文字体了!
4 参考文献
Sun公司对JRE1.5.0版的中文字体设置的官方说明:
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
5适用平台
redflag-linux4.1
fedora core-linux2
fedora core-linux4-x86版 (x86-64的版本没有配置成功)
redflag-linux5.0因正式版还没有发布 所以没有测试
文章评论

共有 1 条评论

  1. jianpdl 于 2006-02-26 20:45:19发表:

    一直想写一点在linux下办公的东西 在文字办公下因为那本《短笛的 linux办公平台》一书写的已经很完善了 我对单位的办公平台从windows下迁移到linux下(红旗4.1)就是参照了这本教材 我就没什么可补充了 现在把公司的客户服务环境也从windows转移了出来 能把自己的一点心得与大家分享 也算是了了一点心愿了 要有什么不完善的地方 还望有人能指出来