1. 原因
JDK需要从字体配置文件中读取字体列表,而默认的字体列表并无中文字体。
2. 解决方法
为JDK的字体配置文件添加中文字体
3. 操作步骤
3.1. 复制字体文件到jdk的字体目录
3.2. 生成字体列表文件
3.3. 查看新生成的fonts.dir文件,查看有关gbsn00l.ttf的部分
3.4. 应该在文件的最后一行
3.5. 回到上一层目录,将gbsn00lp.ttf加入font.properties
3.6. 添加方法:
3.6.1 首先将3.4中看到的那一行文字复制出来,将其中的
0-0-0-0-p-0 改为 *-%d-*-*-p-*
目的是让字体能够按比例缩放,现在成为:
3.6.2 font.properties文件中,已经含有0和1字体,比如第一行是serif.0,第二行是serif.1,那么需要添加
3.6.3 以此类推,在每个xxxx.1下面添加xxxx.2,直到文件的# Missing Glyph Character之前。
3.6.4 添加完成,存盘退出。
3.7. 添加环境变量JAVA_FONTS
3.8. 重新登陆以使环境变量生效
4. 测试
JDK需要从字体配置文件中读取字体列表,而默认的字体列表并无中文字体。
2. 解决方法
为JDK的字体配置文件添加中文字体
3. 操作步骤
3.1. 复制字体文件到jdk的字体目录
| cd /usr/local/java/jre/lib/fonts cp /usr/share/fonts/zh_CN/TrueType/gbsn00l.ttf . | |
3.2. 生成字体列表文件
| ttmkfdir -o fonts.dir | |
3.3. 查看新生成的fonts.dir文件,查看有关gbsn00l.ttf的部分
| vi fonts.dir | |
3.4. 应该在文件的最后一行
| -Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--0-0-0-0-p-0-ascii-0 | |
3.5. 回到上一层目录,将gbsn00lp.ttf加入font.properties
| cd .. vi font.properties | |
3.6. 添加方法:
3.6.1 首先将3.4中看到的那一行文字复制出来,将其中的
0-0-0-0-p-0 改为 *-%d-*-*-p-*
目的是让字体能够按比例缩放,现在成为:
| -Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-0 | |
3.6.2 font.properties文件中,已经含有0和1字体,比如第一行是serif.0,第二行是serif.1,那么需要添加
| serif.2=-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-0 | |
3.6.3 以此类推,在每个xxxx.1下面添加xxxx.2,直到文件的# Missing Glyph Character之前。
3.6.4 添加完成,存盘退出。
3.7. 添加环境变量JAVA_FONTS
| vi /etc/profile JAVA_FONTS=$JAVA_HOME/jre/lib/fonts | |
3.8. 重新登陆以使环境变量生效
4. 测试
| TestCHSGraphic.java(jdk1.3) |
import java.awt.*; import java.awt.image.*; |
| TestCHSGraphic.java(jdk1.4) |
import java.awt.Graphics; import java.awt.BufferedImage; import javax.imageio.ImageIO; |
博客主要讲述JDK因默认字体列表无中文字体,需在其字体配置文件添加中文字体。详细介绍了操作步骤,包括复制字体文件、生成字体列表文件、修改并添加到font.properties、添加环境变量等,最后还提到了测试。
2202

被折叠的 条评论
为什么被折叠?



