Redhat9下的java中文问题解决

你笑的那么抽风

你笑的那么抽风

2016-02-19 20:25

下面是个超简单的Redhat9下的java中文问题解决教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

  漂亮好看的操作系统始终不是我们的目的. 希望这篇文字能帮助至少一两个朋友从这个 Linux 的中文美化问题里面彻底解脱出来, 而真正投入到利用 Linux 为我们服务, 利用 Linux 进行开发工作的实质性事情当中.

  以下内容包括:

  1. 为 Redhat 的两个字体子系统添加字体
  2. 让 Enlightenment 显示中文
  3. Java 的中文问题:

  - JBuilder 的中文问题
  - J2SDK 的中文问题
  - J2RE 的中文问题

  大家挑自己需要的看就好了.

  为 Redhat Linux 添加新字体

  
  [注]
  以下过程在 Redhat 9.0 上测试通过.

  
  准备要安装的字体, 如: simsun.ttc, tahoma.ttf...
  根据发行注记里所言分别为核心 X 字体子系统和 fontconfig 字体子系统添加字体:

  为核心 X 字体子系统添加字体

  [注]
  以下部分应该对 Redhat 9.0 之前的版本也适用, 因为 核心 X 字体子系统存在
  于迄今为止的版本中.

  "如果你想给你的 Red Hat Linux 9 系统添加新字体,根据使用新字体的字体子系统而
  定
  ,你必须明确所需步骤。对于核心 X 字体子系统,你必须:
  1. 创建 /usr/share/fonts/local/ 目录(如果它不存在):
  mkdir /usr/share/fonts/local/"

  - 这一步没问题.

  "如果你必须要创建 /usr/share/fonts/local/,你就必须把它添加到 X 字体服务器的
  路
  径中:
  chkfontpath --add /usr/share/fonts/local/"

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  - 如果是刚创建的 /usr/share/fonts/local/, 那么执行这一行命令会提示错误
  因为系统在这个目录里找不到 fonts.dir 文件, 然后就不 add.. 不过没关系,
  这一步跳过去, 在第三步之后做.

  "2. 把新字体文件复制到 /usr/share/fonts/local/ 中"

  - 照做.

  "3. 使用以下命令来更新字体信息:
  ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale"

  - 照做. 然后:
  1) 把 fonts.scale 拷贝出来一份 fonts.dir.
  2) chkfontpath --add /usr/share/fonts/local/

  "4. 使用以下命令来重新启动 xfs 字体服务器:
  service xfs reload"

  - 这一步我没成功, 因为我发现 redhat 9 里面没有 service 这个命令. 于是
  用笨办法解决: 退出 X, 再 startx.

  以上这些步骤做完之后, 所有 gtk 1.2 的程序里有关字体的部分 (如 xmms 的字体设置
  里) 都多出来我们要的新字体, 像 simsun, tahoma. 这时可以在程序内部直接使用了.
  比如我们让歌曲列表里的中文使用 simsum, 英文使用 tahoma, 可以这样做:

  1) 先在 xmms 的 Fonts 里勾上选项 "Use fontsets" - 让 xmms 支持双字节的
  中文字体;
  2) 在 播放清单 部分浏览字体, 选择使用 simsum:
  -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
  (不用拷这个, 选上 simsun 它自己就出来了)

  对于英文字体的要用 tahoma 就这么来, 一点小技巧:

  把这段 "-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" ^x 剪切下来,
  再选字体为 tahoma, 出现这个:

  -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1

  好了, 在后面加个逗号, 把刚才剪切的那段东东 ^v 粘贴在后面成为:

  -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
  -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

  这么一行, 保存一下, 于是歌曲列表就会对中文使用 simsum, 英文使用 tahoma.
  再把这行拷下面 Main Window 的字体里 (要勾上 "Use X font"), 这时 xmms 主窗
  口里的字体 (像那条来回滚动的歌曲信息的字体) 也和歌曲列表里的一样了.

  注意, 我刚才说的是程序内部, 就象 xmms 的歌曲列表一样, 而 程序本身, 即 xmms 自
  己的窗口却还是又粗又大的字体, 这时需要改 gtk 的字体设置:

  1) 用 root 账号: vi /etc/gtkrc.zh_CN
  2) 把原来的:

  fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,
  -*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"

  改成和我们上面用在 xmms 里的字体一样:

  fontset =
  "-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
  -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"

  3) 保存退出, 关掉 xmms 这些程序, 再重新打开, 效果就出来了! Enjoy!

  
  为 fontconfig 字体子系统添加字体

  [注]
  以下除了 "图形化地安装字体" 部分为 Rehat 9.0 独有, 其他应该在之前版本也适
  用, 大家试试.

  这部分简单多了, 看 redhat 9 发行注记:

  "把新字体添加到 fontconfig 字体子系统比较简单明了;只需把新字体复制到
  /usr/share/fonts/ 目录中即可(个体用户可以把新字体复制到 ~/.fonts/ 目录中来修
  改他们的个人字体配置)

  复制了新字体后,使用 fc-cache 来更新字体信息缓存:

  fc-cache

  (这里的 应该是 /usr/share/fonts/ 或 ~/.fonts/ 目录。)"

  - 我是按这个办法把字体拷 ~/.fonts/ 下面做成功的. (不想使用 root 用户, hh)

  "个体用户还可以图形化地安装字体。方法是:在 Nautilus 中浏览 fonts:///,然后把
  新字体文件拖放到那里。"

  - 而这个办法我失败了, 无论我用普通用户还是 root 用户, 都无法把字体文件
  拷贝或者 "拖放" 到 Nautilus 的 fonts:/// 文件夹里. 不知道原因, 只好放弃.

  按第一种方式添加成功后, 在 gtk 2 的程序里设置字体的部分都可以自由使用新字体
  比如在控制中心里把应用程序字体都改成 simsum. (另外, 我发现 10 号大小的
  simsun 效果最好, 不使用单色也非常清晰, 可以考虑使用)

  总的来说, 为 Redhat Linux 添加新字体并没有什么太难太神秘的东西, 我个人做完之
  后
  觉得并没有想像中那么难, 尤其是 gtk 1.2 程序的字体部分, 不必改别人说过的那么多
  文件,

  而实际只要添加完字体, 改个 /etc/gtkrc.zh_CN 就搞定了.

  
  让 Enlightenment 显示中文

  
  同样简单, 在上面的前提下, 找到你当前使用的 E 主题, 如我的是在

  ~/.enlightenment/themes/AquaX/

  进入这个目录后, 最简单的做法:
  gedit textclass.cfg

  利用 gedit 的替换功能, 把所有关于字体的字符串, 如:

  "-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*"

  统统替换成和 xmms 一样的:

  -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
  -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"

  保存退出, 清除 E 的缓存, Restart E, 搞定.

  
  Java 的中文显示

  
  1. JBuilder 的中文问题

  vi /etc/profile

  添加:

  JAVA_FONTS=/path/to/your/zhfonts/
  export JAVA_FONTS

  比如要用刚才弄好的 simsum 和 tahoma 字体, 因为我们已经把它们放在:
  /usr/share/fonts/local 里面了, 所以这里就可以填:

  JAVA_FONTS=/usr/share/fonts/local

  注意, JBuilder 显然用的是 fontconfig 字体子系统, 所以, 要让它认出来
  有哪些字体可以用, fonts.scale 和 fonts.dir 这两个问题无疑是必需的.
  相比较上面核心 X 字体子系统的字体文件夹里, 即我的 ~/.fonts 里面只有
  字体文件和一个叫 "fonts.cache-1" 的文件, 可以对比着理解.

  能让 JBuilder 打开的程序显示中文, 但 JBuilder 本身中文有问题, 下面:
  修改 JBuilder 自己的字体配置, 比如我的 JBuilder 装在:

  ~/Apps/Devs/JBuilder

  那么:
  vi ~/Apps/Devs/JBuilder8/jdk1.4/jre/lib/font.properties

  把这样的东西:

  serif.0=-b&h -lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
  serif.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific

  serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
  serif.italic.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontsp
  ecific

  统统换成如:

  serif.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
  serif.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

  serif.italic.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
  serif.italic.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

  (还是用上面 xmms 一样的字体)

  所有这些 "*.0=.." 都是描述英文该用什么字体
  而所有 "*.1=..." 都是描述中文该用什么字体

  最后保存退出, JBuilder 里的英文就都是 tahoma, 所有的中文都是 simsun
  自然, 因为已经设置了 JAVA_FONTS , 所以所有 Java 的应用程序都能正常找到
  中文字体并显示.

  最后注意一点, 我自己尝试失败的一件事:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  记得我们上面配置核心 X 字体子系统时, 在 ~/.fonts/ 里面放置了给 gtk 1.2
  程序使用的字体文件, 如果这时把 JAVA_FONTS 指向这里, 会出现的现象是:

  JBuilder 里面打开的程序可以显示中文
  但是, JBuilder 自己的窗口无法显示中文.

  我个人认为和 fontconfig 的 fonts.dir, fonts.scale 以及核心 X 的
  "fonts.cache-1" 有关系, 具体就不懂了.
  所以这里可以体验到两个字体子系统的差异.

  2. j2sdk 的中文问题:

  上面这样配置之后, 只有在 JBuilder 环境内开发程序时, 才能正常显示中文
  (因为 JBuilder 帮你找字体), 而如果我们回到命令行方式使用 j2sdk 开发,
  这时会发现还是显示不了中文, 让我们由此及彼地推想一下, jbuilder 的 jre
  里把 font.properties 修改完就能显示中文, 同样, j2sdk 下面也有自己的
  jre... 没错! 只要把我们刚才为 JBuilder 修改完的 fonts.properties 拷
  到 $JAVA_HOME/jre/lib 下面, 把它原来的覆盖, 一切 OK!

  3. j2re 的中文问题:

  还没想到测试方法, 回头再说...估计也一样, j2re 下面的 lib 里一样有
  font.properties, 所以, 应该可以再次重用 JBuilder 的 fonts.properties.
  总之呢, 这一切都基于你最初要把字体添加正确, 其它都好办了, 拷文件而已.´

展开更多 50%)
分享

猜你喜欢

Redhat9下的java中文问题解决

编程语言 网络编程
Redhat9下的java中文问题解决

JSP中文问题解决方案

Java JAVA基础
JSP中文问题解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

PHP和JAVA的XML-RPC中文问题解决办法

PHP
PHP和JAVA的XML-RPC中文问题解决办法

ajax中文乱码问题解决方案

Web开发
ajax中文乱码问题解决方案

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mygui中文换行问题解决方案

编程语言 网络编程
Mygui中文换行问题解决方案

硬盘安装 RedHat9 心得

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
硬盘安装 RedHat9 心得

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win8系统延长电脑电池寿命的方法

Win8系统延长电脑电池寿命的方法

JDBMonitor在多数据源中的问题

JDBMonitor在多数据源中的问题
下拉加载更多内容 ↓