« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
Seeking somebody... |
Blog信息 |
blog名称:竹,劲竹;刀,快刀 日志总数:17 评论数量:26 留言数量:0 访问次数:205263 建立时间:2005年6月8日 |

| |
[工作·学习]Java2D,在Linux平台下显示中文 软件技术
竹刀 发表于 2006/3/18 13:51:02 |
基于jFreeChart画了几个图,在Linux下运行,其中的汉字居然不能正确显示出来,变成了小方框。使用JDK提供的DEMO:Font2DTest.jar测试也是一样,看不到熟悉的汉字。于是google了一下,问题基本上得到解决。总结一下方法: 1.在windows平台下找个可以描绘中文的字体文件,例如SURSONG.TTF。一般这些字体位于c:\windows\fonts目录下。 感谢微软,提供了这么丰富的字体。(很多字体可以从微软的网站免费得到) 2.将该ttf上传到Linux系统中的$JAVA_HOME/jre/lib/fonts目录下。 3.编辑$JAVA_HOME/jre/lib/fonts/fonts.dir文件,将第一行的数字加1并加入下面一行内容: SURSONG.TTF -misc-ChaoDaSongTi--medium-r-normal--0-0-0-0-c-0-GB18030 (注1) 4.保存fonts.dir文件后,进入到$JAVA_HOME/jre/lib目录,将看到好几个font.properties.*文件(注2)。编辑其中的font.properties,将刚才的字体映射到逻辑字体名,例如sansserif.2 sansserif.2=-misc-ChaoDaSongTi--medium-r-normal--0-0-0-0-c-0-GB18030 保存修改,并将其它的font.properties.*文件删除。当然,更好的实践应该是将这些文件备份到另一个地方。;-P 5.重新运行一下DEMO,找到sansserif字体,是不是可以看到熟悉的汉字了?
--------------------------------------------注1:X Windwo 的xlfd字体描述 google it注2:Java的font.properties文件: http://java.sun.com/j2se/1.3/docs/guide/intl/fontprop.html http://java.sun.com/j2se/1.4.2/docs/guide/intl/fontprop.html其中在java13的那个文档中提到:
When copying this xlfd string into a font.properties entry, remember to replace the point size (the second "0") with a "%d" which is later replaced with a specific point size when the font is used. Also, replace the other "0" values with "*" (asterisk) to indicate that any value may match this field.在实际中,似乎将提到的各值保留为0似乎也没有什么区别. |
|
回复:Java2D,在Linux平台下显示中文 软件技术
sandy(游客)发表评论于2006/8/18 11:07:29 |
咨询一个问题?是不是在linux下用jfreechart显示中文必须要有X界面,还是只是在jre下加入中文字符就可以了,谢谢,邮件为:pjiang@job5156.com
以下为blog主人的回复:
嗯,据个人的了解.应该是的.jFreeChart做图使用到了awt等.如果是看到Can't connect to the X11 window server类似的错误,就是说明需要XWindow的环境.
另外,指定java.awt.headless=true也可能可以模拟一下相应的环境.
做Web应用,比较少用到这个,也没什么经验.抱歉...... |
|
» 1 »
|