heyuqi 发表于 2005-9-28 23:09:23

ML1.2&&java1.5图形界面无法显中文问题的解决

由于要使用JDK1.5进行开发,ML1.2里面只有JRE1.4,所以从java.sun.com上下了JDK的rpm包,但是自从安装了以后,一直有一个问题,就是awt图形界面上无法显示中文,只有很不爽的乱码。

在论坛里没有找到java1.5的这个方面相关配置,问题担搁到今天才解决。原理是根据
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
里面提到java的runtimes会使用下列文章中按顺序第一个找到的作为字体配置文件

      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

以下是我的操作,我的java环境设置只剩下这一步了,以前的设置都是参照论坛里的疑难解答提供的方法进行操作的

cd /usr/java/jdk1.5.0_05/jre/lib

备份fontconfig.*文件,并把所有的.bfc文件删掉
mkdir fontconfig_bak
mv fontconfig.* fontconfig_bak

编辑fontconfig_bat里的fontconfig.RedHat.properties.src,修改下面两处内容
......
# Font File
......
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/ttf/zh_CN/simsun.ttf
.....
# AWT X11 font paths
awtfontpath.chinese-cn-iso10646=/usr/share/fonts/ttf/zh_CN

文档另存为/usr/java/jdk1.5.0_05/jre/lib/fontconfig.properties,注意这里是把一个*.properties.src另存为*.properties的,不要弄错了。

现在awt图形界面可以显示中文了 :lol:

demonlj 发表于 2005-9-29 01:09:55

the problem is 'mgc-patch'
try to update the rpm file of it

heyuqi 发表于 2005-9-30 15:56:18

update "mgc-patch" 也是没有用的

因为我使用的JDK,不是JRE。JDK和JRE是有区别的:

可以编译JAVA程序的是JDK,只能运行JAVA的是JRE,JRE全称就叫JAVA运行环境。当然
JDK包含了JRE,JRE只是JDK的一部分。
如果你装的是JRE,你是JRE文件夹就是$JAVA_HOME;如果你装的是JDK,你的JRE文件在$JAVA_HOME/jre里。

因为ML用的是JRE不是JDK,所以update "mgc-patch"是没有用的,它只会多建了一个JRE目录,但是这个目录又跟系统的指向的目录是不一样的。例如我装了JDK1.5以后的就有了文件夹/usr/java/jdk1.5.0_05,update了"mgc-patch"它又加了/usr/java/jre1.5.0_04;修改的fontconfig.properties放在jre1.5.0_04/lib里。这样子与没修改是没区别的,还要进行一些设置

再者,我下的"mgc-patch",它里面提供的fontconfig.properties里用的字体文件是fireflysung.ttf, 这在ML1.2里面是没有,还要再加一个字体,很麻烦

demonlj 发表于 2005-9-30 19:44:40

update "mgc-patch" 也是没有用的

因为我使用的JDK,不是JRE。JDK和JRE是有区别的:

可以编译JAVA程序的是JDK,只能运行JAVA的是JRE,JRE全称就叫JAVA运行环境。当然
JDK包含了JRE,JRE只是JDK的一部分。
如果你装的是JRE,你是JRE文件夹就是$JAVA_HOME;如果你装的是JDK,你的JRE文件在$JAVA_HOME/jre里。

因为ML用的是JRE不是JDK,所以update "mgc-patch"是没有用的,它只会多建了一个JRE目录,但是这个目录又跟系统的指向的目录是不一样的。例如我装了JDK1.5以后的就有了文件夹/usr/java/jdk1.5.0_05,update了"mgc-patch"它又加了/usr/java/jre1.5.0_04;修改的fontconfig.properties放在jre1.5.0_04/lib里。这样子与没修改是没区别的,还要进行一些设置

再者,我下的"mgc-patch",它里面提供的fontconfig.properties里用的字体文件是fireflysung.ttf, 这在ML1.2里面是没有,还要再加一个字体,很麻烦
我们不建议使用magic1.2,起码现在很多东西你说在1.2中如何,如何。但是,我们并不能再现你提到的错误。比如你说1.2中没有fireflysung.ttf字体,首先我记忆中是有。其次,在我2.0中也的确是有。
所以,个人觉得你先升级到2.0之后再解决问题吧

然后,说设置问题。本来在magic中我们用的是jre,我们打包当然以此为基础,对不?你要是觉得“麻烦”,我们没有办法!因为我们不可能为你一个人去调整整体,这个说法对不?
当然,看这个包的名称"mgc-path"。本来就是magic自己的补丁,那么你要用的话,其实你可以自己去打个包给自己用。magic是开放源码包的。你可以很容易找到它的源码包。根据自己的需要调整下配置不是很好吗?

之前发帖没有看清楚内容,向你表示道歉 :oops:

heyuqi 发表于 2005-10-3 21:39:19

demonlj其实也不用道歉的。 :lol:

呵呵,我发这个帖子的时候并没有想要ML在这个问题什么什么处理。事实上ML用的是jre是很正确的,因为使用者只有很少人用jdk。只要能运行java程序就行了。

我发这个帖子只是为了那些在ML上要用JDK开发而像我一开始那样不知道怎么做的人,共享我自己处理的方法。

另外,我现在也已经在用2.0了 :lol:

haulm 发表于 2005-10-3 21:52:29

JRE--java运行时,JDK--java编译类库,一般JDK包含了JRE。
使用LINUX的感受是:所有的新类库除非是官方指定的,其它自己需要安装的并可以独立的,则指定目录安装,绝不让新装类库直接服务于自己未知的系统和其它程序的调用。
象zend studio的乱码很难解决,其实就是JRE里的字体设置问题,实在搞不定,我就把它删了,ML会自动用系统的JRE运行时支持zend studio。
也不知我到底有没必要对fontconfig.* 进行一些探索。
希望高人能介绍和教我ML字体的设置要点。

gashero 发表于 2005-10-6 20:14:26

我以前发现ML1.2会自己设置一个JRE路径,在配置文件/etc/profile.d/下面一个magic开头的,你找找看吧,把里面设定的JRE路径之类的东西先删除了再说,否则还是 原版本的JRE

heyuqi 发表于 2005-10-7 19:41:04

JRE--java运行时,JDK--java编译类库,一般JDK包含了JRE。
使用LINUX的感受是:所有的新类库除非是官方指定的,其它自己需要安装的并可以独立的,则指定目录安装,绝不让新装类库直接服务于自己未知的系统和其它程序的调用。
象zend studio的乱码很难解决,其实就是JRE里的字体设置问题,实在搞不定,我就把它删了,ML会自动用系统的JRE运行时支持zend studio。
也不知我到底有没必要对fontconfig.* 进行一些探索。
希望高人能介绍和教我ML字体的设置要点。

呵呵,不好意思,不知道你说什么,你可以试试参考《ML 1.2 版疑难解答汇编》。先修改 /etc/profile.d/magic-profile.sh设定好JAVA的环境,ML2.0的修改/etc/profile.d/java-profile.sh;然后再试试按照我上面的设置设好字体

还有zend studio是用来干什么的

樱家冢 发表于 2005-10-7 22:00:48

zend studio是用来干什么的
zend加速PHP程序的吧?至于zend studio,可能是编写PHP用的。
页: [1]
查看完整版本: ML1.2&&java1.5图形界面无法显中文问题的解决