LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4510|回复: 19

Linux下JDK1.5的安装和中文显示

[复制链接]
发表于 2006-1-10 16:30:40 | 显示全部楼层 |阅读模式
本来做成了pdf,后来发现无法上传,只好复制粘贴如下:


受朋友之托写一个Linux 下JDK的安装与配置的文档。由于本人也是初学,而且第一次写,就当抛砖引玉,供大家一笑,出现各种疏漏或错误还请大家不吝赐教。(本文测试环境为SuSE Linux 10.0 )
闲话不提,直接进入主题。鄙人认为在Linux下配置JDK主要的难点有三个:一是JDK的安装,二是环境变量的配置,三是中文支持的配置。下面就这三个部分详细讲述。

1.安装JDK
首先,到http://java.sun.com/j2se/1.5.0/download.jsp
下载最新版本的Linux 平台的JDK,建议下载RPM自解压格式的例如本文所用jdk-1_5_0_06-linux-i586-rpm.bin,先下载文件到/tmp,打开终端,输入:
cd /tmp
su
输入root密码
直接执行文件:
./jdk-1_5_0_06-linux-i586-rpm.bin
然后会出现sun的协议(Sun Microsystems, Inc. Binary Code License Agreement),如果运行jdk-1_5_0_06-linux-i586-rpm.bin无效请给予其相应的运行权限。
想查看完整协议,不断点击more就可以了。如果看完了,或者像我一样看不懂^__^就直接按q吧。
出现提示:Do you agree to the above license terms? [yes or no]
如果同意协议,请输入yes。
然后自动解压出jdk-1_5_0_06-linux-i586.rpm,并且自动安装,如果不是root用户,可能会出现类似
error: cannot get exclusive lock on /var/lib/rpm/Packages
error: cannot open Packages index using db3 - 不允许的操作 (1)
error: cannot open Packages database in /var/lib/rpm
的错误。
最后显示Done.安装结束。

2.配置环境变量
就像在windows下一样,装好JDK需要配置环境变量,否则系统找不到相应的程序。先查看当前系统环境变量中jdk的路径:
echo $JAVA_HOME
如果安装SuSE Linux时选择了相应的java的包,则显示/usr/lib/jvm/java。再看当前JDK版本:
java -version
我的机器上显示如下信息:
java version "1.4.2_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)
是1.4.2_06版本,不是我们刚才安装的版本(因为没有修改环境变量嘛)。
我们刚才安装的版本默认在/usr/java/jdk1.5.0_06,我们把它加到环境变量。
最简单的办法就是编辑/ect/profile,在文件最后的
#
# End of /etc/profile
#
上面添加如下文本:
export JAVA_HOME=/usr/java/jdk1.5.0_06
export CLASSPATH=.JAVA_HOME/jre/libJAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/binPATH
作用分别是设置 JAVA_HOME , CLASSPATH , JRE_HOME , PATH 所指向的路径。跟windows下的意义一样。如果不懂可以查阅相关文档或者直接把以上文本复制粘贴到你的/ect/profile 中即可。
注销一下,使更改生效。
再查看一下当前的环境变量:
echo $JAVA_HOME
输出:
/usr/java/jdk1.5.0_06
可以看到我们刚才装的JDK生效了。
然后输入:
java -version
查看当前JDK版本。
输出:
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
说明我们环境变量配置成功了。

3.中文化配置
先做个实验:在终端下输入:
ControlPanel
打开java控制面板。(或者运行任意带中文文字的awt程序测试),如果中文没有正确显示而是显示成类似“口口”的乱码说明中文需要配置。
先复制一个中文字体到Linux中,(本文以复制windows XP/2003 中 C:\windows\fonts目录下simsun.ttc为例),把字体simsun.ttc复制到/tmp并改名为simsun.ttf,并将其复制到/usr/java/jdk1.5.0_06/jre/lib/fonts:
cp /tmp/simsun.ttf /usr/java/jdk1.5.0_06/jre/lib/fonts
修改/usr/java/jdk1.5.0_06/jre/lib/fonts/fonts.dir。
第一行48改为49
最后一行加上:
simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
保存退出。
把我附件中的fontconfig.SuSE.properties复制到/usr/java/jdk1.5.0_06/jre/lib/:
cp /tmp/fontconfig/fontconfig.SuSE.properties /usr/java/jdk1.5.0_06/jre/lib/
若无法下载附件,请在/usr/java/jdk1.5.0_06/jre/lib/目录新建名为fontconfig.SuSE.properties文档,复制如下文本并保存:


# @(#)linux.fontconfig.SuSE.properties  1.2 03/10/17
#
# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
#

# Version

version=1

# Component Font Mappings

serif.plain.latin-1=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.bold.latin-1=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.latin-1=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.bolditalic.latin-1=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
sansserif.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
monospaced.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1
dialog.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
dialoginput.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1

serif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0

# Search Sequences

sequence.allfonts=zh-1

# Exclusion Ranges

# Font File Names

现在再输入:
CntrolPanel
如图:现在的java控制面板就能显示熟悉的中文了。相应的运行java应用程序或者applet也不会出现中文乱码的现象了。

整个java环境的配置就简单介绍到这里,也许跟大家实际操作有一定出入,不过原理是一样的,请大家举一反三,触类旁通。如果大家还有什么疑问请联系QQ:316969,注明“JDK”。我会竭尽所能为大家服务。在此谢谢“三翻领”兄弟,是他促使我写下这篇小文档,为开源事业做出己力所能及的事情。本文参考互联网上资料,谢谢大家。
随后做个广告,喜欢SuSE的朋友请大家加QQ群:16263404,大家共同讨论共同进步。
小弟才疏学浅,贻笑大方了。
发表于 2006-1-10 16:55:57 | 显示全部楼层
其实SuSE10是有自带的jdk
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/10.0-i386 java
rpm-src ftp://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/10.0-i386  java
同时yast会用fontconfig定义font properties
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-10 17:30:21 | 显示全部楼层
自带的jdk1.4已经有些老了,许多软件需要至少jdk1.5支持,比如apache-tomcat-5.5.13,所以有一定的必要升级
另:
请问
"同时yast会用fontconfig定义font properties"
如何实现.有更巧妙的方法不妨说出来
回复 支持 反对

使用道具 举报

发表于 2006-1-10 17:45:20 | 显示全部楼层
非常感谢啊,这正是我要的
但是,可能当初我说的还不够清楚
1.这个问题的起源是tom.com上围棋版块使用applet所引起的,比如http://weiqi.sports.tom.com/pu/8568.html但是后来我发现,所谓的中文问题,其实更多的是讲到java控制台的中文问题,这里的K兄就是解决java控制台的中文显示而上述围棋的中文则还是乱码,所以,请颜群兄验证一下上述链接的情况。(这是我的错)
2.还有,就是既然修改了java,因为涉及到浏览器,所以必然要考虑firefox的java插件问题。请颜群兄看看(firefox地址栏输入about: plugins回车)你经过安装过java1.5的情况下,firefox是否调用java1.5的插件
所以,颜群兄,我估计按照你的方法改造java之后,不会解决我的问题,问题很有可能出现在2上。如果1是我多虑了,那我想2是好解决的(su100提供);如果真的只解决了java控制台下的中文问题,我真的不知道该怎么责骂自己了。
回复 支持 反对

使用道具 举报

发表于 2006-1-10 18:24:52 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-10 18:27:32 | 显示全部楼层
楼上朋友,可能我没说清楚,我的意思是"同时yast会用fontconfig定义font properties"怎么实现?
装上rpm之后自动就可以支持中文了吗?
回复 支持 反对

使用道具 举报

发表于 2006-1-10 19:35:10 | 显示全部楼层
颜群,我已经通过yast在安装java1.5.0,等待中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-10 19:57:45 | 显示全部楼层
关于firefox的java插件问题已经解决:
1.按一楼的方法安装好jdk或者jre.
2.确定系统firefox插件的目录:我的机器是:/opt/MozillaFirefox/lib/plugins
3.确定jre目录:按一楼方法装好是:/usr/java/jdk1.5.0_06/jre
4.切换置firefox插件目录:cd /opt/MozillaFirefox/lib/plugins
5.创建指向新jre的链接:ln -s usr/java/jdk1.5.0_06/jre/plugin/i386/ns7/libjavaplugin_oji.so (若以前有指向旧jre链接请先删除或备份)
6.重新启动firefox
7.地址栏输入about : plugins观察是否已经识别新的jre
8.地址栏输入如http://weiqi.sports.tom.com/pu/8568.html(Tom棋圣道场)可见中文已经可以显示。

不过中文显示还是不尽如人意,如果有朋友知道请指点一二。谢谢
回复 支持 反对

使用道具 举报

发表于 2006-1-10 22:00:25 | 显示全部楼层
无论如何,我很感激
回复 支持 反对

使用道具 举报

发表于 2006-1-10 22:18:57 | 显示全部楼层

不好意思刚刚要先走没有时间回答

Post by sonic_yq
楼上朋友,可能我没说清楚,我的意思是"同时yast会用fontconfig定义font properties"怎么实现?
装上rpm之后自动就可以支持中文了吗?


yast每一次安装后都会自动运fontconfig
vi 到 /etc/sysconfig/fonts-config 内可以看到

## Path:        Desktop
## Description: Display font configuration
## Type:        yesno
## Default:     yes
#
# generate font setup for Java 1.4.x and Java 1.5.x
#
GENERATE_JAVA_FONT_SETUP="yes"

如果你想手到也可以用 sudo fonts-config --java
就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表