<< Back to shouce.jb51.net

8.18. 配置Java环境

8.18.1. 安装

Debian官方没有维护专门的Java软件包,所以不能直接用apt-get工具来安装。在Debian系统中要安装Java,有两种方式,一种是用传统方式;一种是Debian方式。下面分别介绍:

传统方式:

  • 到SUN官方网站下载最新jre包,我下载的是jre-1_5_0_01-linux-i586.bin,并把该文件的属性改成可执行,直接执行该文件。

    debian:~/inst# chmod +x jre-1_5_0_01-linux-i586.bin
    debian:~/inst# ./jre-1_5_0_01-linux-i586.bin 
    

    程序运行后会当前目录下生成一个名为jre1.5.0_01的目录。

  • 把该目录拷贝到/usr/local/jre1.5.0_01,并在你的系统初始化脚本中增加以下两个环境变量。在我的系统中,我把这两句放到~/.gnomerc文件中。

    export CLASSPATH="/usr/local/jre1.5.0_01/lib"
    export JAVA_HOME="/usr/local/jre1.5.0_01" 
    

    重启系统或手工执行以上两个export命令后,就可使用java命令了,你可用java -version命令进行测试。使用传统方式安装的java没有归并到Debian软件包体系中,所以在Debian的软件包数据库中不会存在java的依赖关系信息。且不能用Debian的软件包管理程序进行管理,只能手工维护。也就是说,如果我们要删除java,只能手工删除目录和环境变量。

Debian方式(推荐):

  • 我们可以通过java-package包提供的make-jpkg程序,从SUN官方的java软件包生成一个Debian软件包。java-package软件包可通过apt-get命令安装。

    debian:~# apt-get install java-package
    
  • 下载官方的java软件包,并用以下命令生成Debian格式的java软件包。注意,make-jpkg程序不能在root环境下运行,我们要使用fakeroot程序。

    debian~:# cp jre-1_5_0_01-linux-i586.bin /home/jims/.
    debian~:# chown jims /home/jims/jre-1_5_0_01-linux-i586.bin
    debian~:# su - jims
    jims@debian:~$ fakeroot make-jpkg jre-1_5_0_01-linux-i586.bin
    

    程序运行完成后,在当前目录下就会生成一个Debian软件包sun-j2re1.5_1.5.0+update01_i386.deb。

  • 以root身份安装该软件包。

    debian~:# dpkg -i sun-j2re1.5_1.5.0+update01_i386.deb
    
  • 最后设置java的环境变量。

    export CLASSPATH="/usr/lib/j2re1.5-sun/lib/"
    export JAVA_HOME="/usr/lib/j2re1.5-sun/"
    

    用java -version进行测试。用这种方式安装的java会把java软件包的相关信息储存在Debian软件包数据库,可用apt-get工具进行管理。如果要删除java,只要运行以下命令即可。

    debian:~# apt-get --purge remove sun-j2re1.5
    

建议使用Debian方式安装java,这样其它依赖于Java的Debian软件包才能被正常安装。

8.18.2. 设置JAVA的中文显示

在Linux环境下,如果Java的字体设置不对,Java程序会把中文显示成一些方框符号或问号。为了使基于Java的程序能正常显示中文,需进行字体配置 。下面是在Debian环境下的配置方法,其它发行版的修改方法也一样,只是需修改的文件的路径名不同罢了。

  1. 找到.../jre/lib/目录,在我的debian系统上是/usr/lib/j2se/1.4/jre/lib。该目录下有很多以font开头的文件,其中font.properties是java默认的字体配置文件。用font.properties.zh_CN.Sun覆盖原来的font.properties文件。

  2. 修改新的font.properties文件,以SimSum字体为例,把以下设置

    serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.1=-Hanyi-HanyiSong-medium-r-normal--*-%d-*-*-c-*-gbk-0
    

    更改成

    serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.1=-misc-SimSun-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0
    

    按以上的方式把文件中的所有字体进行同样的设置。如果不知道本机安装了什么字体,可用xlsfonts命令列出。

以上的设置适用于1.4版的java,1.5版的java的字体设置有较大的变化,字体配置文件名变成fontconfig.properties。经测试,在1.5中有两种设置中文字体的方法,一种就是与1.4的方法一样,需配置fontconfig.properties文件。在/usr/lib/j2re1.5/lib目录下有很多以.src结尾的配置源文件,代表在不同平台下的标准配置。我们可以它们为蓝本拷贝成fontconfig.properties。然后再根据你系统中所安装的X11核心中文字体来配置字体名和字体文件路径。第二种方法很简单,只要在/usr/lib/j2re1.5/lib/fonts目录下建立一个fallback目录,并把中文字体文件拷贝或链接到该目录中即可,根本不用配置其它东西。