acerbic coffee
走自己的路,讓別人跑步
BlogJava
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 26,comments - 14,trackbacks - 0
<
2008年7月
>
日
一
二
三
四
五
六
29
30
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
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
個人筆記(18)
隨筆檔案
2009年9月 (1)
2009年7月 (2)
2008年7月 (1)
2008年6月 (2)
2008年5月 (2)
2007年9月 (1)
2007年8月 (1)
2007年5月 (1)
2007年4月 (5)
2007年3月 (1)
2006年11月 (4)
2006年10月 (8)
文章分類
articles(5)
個人記錄(9)
文章檔案
2013年3月 (1)
2009年7月 (1)
2009年6月 (1)
2007年2月 (1)
2006年11月 (6)
2006年10月 (8)
收藏夾
bank(4)
html學(xué)習(xí)+經(jīng)典(4)
javascript(7)
java學(xué)習(xí)(10)
ruby(3)
框架(struts+jsf+spring...)(4)
ajax中國(ajax開發(fā))
ajax開發(fā)簡略
其他
下載
孫維琴個人網(wǎng)站
搜索
積分與排名
積分 - 47190
排名 - 1037
最新評論
1.?re: JFreeChart在linux端圖片顯示亂碼問題解決
樓上絕對正解
--haer
2.?re: JFreeChart在linux端圖片顯示亂碼問題解決
是的@劉鑫
--zzs
3.?re: JFreeChart在linux端圖片顯示亂碼問題解決
絕對正解 @liuyang
--bincrack
4.?re: JFreeChart在linux端圖片顯示亂碼問題解決[未登錄]
樓上正解,感謝!
--liuyang
5.?re: tomcat啟動加載xml文件的配置在什么地方?
要在host 節(jié)點配置
--hout
閱讀排行榜
1.?無意中查sql中as的用法搜索到的一些經(jīng)典的sql語句(6927)
2.?JFreeChart在linux端圖片顯示亂碼問題解決(4034)
3.?MyEclipse快捷鍵與插件大全(3968)
4.?tomcat啟動加載xml文件的配置在什么地方?(2066)
5.?tomcat服務(wù)器配置chm.rar等文件下載!(1762)
評論排行榜
1.?JFreeChart在linux端圖片顯示亂碼問題解決(5)
2.?學(xué)習(xí)struts有那么難么?(5)
3.?今天自己做得一個js動態(tài)改變圖片的程序!!(1)
4.?無意中查sql中as的用法搜索到的一些經(jīng)典的sql語句(1)
5.?tomcat啟動加載xml文件的配置在什么地方?(1)
JFreeChart在linux端圖片顯示亂碼問題解決
最近項目遇到linux上顯示JFreeChart圖形,在網(wǎng)上搜索到了很多關(guān)于此方面的信息,詳細(xì)的也有,不過大多環(huán)境都是redhat+jdk1.4但乍一看說得不太清楚,搞了半天終于搞定了,現(xiàn)解釋,
環(huán)境:suse10,jdk1.4.2
相同部分就不再多說,以下部分內(nèi)容,挑csdn上一個詳細(xì)的文章粘貼出來,順便總結(jié)一下
一、 錯誤描述
基本上的錯誤都是以下錯誤
1
java.lang.InternalError: Can
'
t connect to X11 window server using
'
:
0.0
'
as the value of the DISPLAY variable.
2
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
3
at sun.awt.X11GraphicsEnvironment.
<
clinit
>
(X11GraphicsEnvironment.java:
125
)
4
at java.lang.Class.forName0(Native Method)
5
at java.lang.Class.forName(Class.java:
140
)
6
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:
62
)
7
at java.awt.Font.initializeFont(Font.java:
309
)
8
at java.awt.Font.
<
init
>
(Font.java:
345
)
9
at org.jfree.chart.plot.PiePlot.
<
clinit
>
(PiePlot.java:
186
)
10
at org.jfree.chart.ChartFactory.createPieChart3D(ChartFactory.java:
416
)
錯誤原因么,大概就是jvm找不到字體文件
二、問題解決:
寫一個測試系統(tǒng)環(huán)境的小程序
1
public
class
PrintLocale
{
2
public
static
void
main(String[] args)
{
3
System.out.println(System.getProperty(
"
user.language
"
));
4
System.out.println(System.getProperty(
"
user.region
"
));
5
System.out.println(System.getProperty(
"
file.encoding
"
));
6
System.out.println(System.getProperty(
"
os.version
"
));
7
}
8
}
9
例如輸入結(jié)果:
zh
CN
GB2312
2.4.19-4GB
對于我們來說關(guān)注的地方其實只有第一行“zh”,說明目前環(huán)境是簡體中文,
從Sun的文檔"Adding Fonts to the Java Runtime"[參見參考文獻(xiàn)1]中,我們可以得知: 在英文環(huán)境下,字體屬性由無后綴的font.properties 定義。為了一些操作系統(tǒng)的特殊問題,字體屬性文件的名字可以加入操作系統(tǒng)的版本號作為后綴。例如,Solaris 2.5.1 不支持 TrueType 字體,所以字體屬性文件font.properties.5.5.1 將只包含 F3 字體。在大多數(shù)操作系統(tǒng)中,版本后綴的值由System.getProperty("os.version")來確定。
如果環(huán)境是日文、韓文、簡體中文或繁體中文,就必須使用相應(yīng)于特定環(huán)境的 font.properties 文件。這些文件可以通過文件名后邊加上相應(yīng)的國家或者locale后綴識別,格式為font.properties.<locale>。該<locale>實際上由<language>_<region>_<encoding>三部分構(gòu)成。而<language>、<region>和<encoding>分別對應(yīng)了系統(tǒng)屬性(由System.getProperty方法返回的字符串)"user.language"、"user.region"和"file.encoding"。而這個font.properties.<locale>名也可以跟操作系統(tǒng)的版本結(jié)合使用。
概括的講,Java按照以下順序搜索字體屬性文件:
1
font.properties.
<
language
>
_
<
region
>
_
<
encoding
>
.
<
osVersion
>
2
font.properties.
<
language
>
_
<
region
>
_
<
encoding
>
3
font.properties.
<
language
>
_
<
region
>
.
<
osVersion
>
4
font.properties.
<
language
>
_
<
region
>
5
font.properties.
<
language
>
_
<
encoding
>
.
<
osVersion
>
6
font.properties.
<
language
>
_
<
encoding
>
7
font.properties.
<
language
>
_
<
osVersion
>
8
font.properties.
<
language
>
9
font.properties.
<
encoding
>
.
<
osVersion
>
10
font.properties.
<
encoding
>
11
font.properties.
<
osVersion
>
12
font.properties
13
所以我們需要檢查%JAVA_HOME%/jre/lib/fonts目錄下是否存在font.properties.zh文件,如果沒有則新建一個,或者copy font.properties
1
cp font.properties font.properties.zh
三、檢查
很多人介紹的都是copy或引用/usr/share/fonts/zh_CN/TrueType目錄下的中文字體
但是有些suse上不存在/usr/share/fonts這個目錄,所以有時候會叫人感覺很頭疼,但是仔細(xì)檢查你會發(fā)現(xiàn)路經(jīng)/usr/lib/X11/font/truetype存在,所以并不一定要/usr/share/fonts/zh_CN/TrueType這個文件夾
用vi打開/usr/lib/X11/font/truetype/fonts.dir文件,
搜索gbk或gb2312(一個人需要而定),將其中的一個拷貝出來此處,我們搜索gb18030,在font.dir中找到
-misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1
按照 java 的字體規(guī)則改為 -misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
我們選用字體 -misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1 是因為在 redhat 7.3 和 redhat 8.0 上都能用
打開font.properties.zh,將里面內(nèi)容替換如下:
1
# @(#)font.properties.zh.Redhat.linux 1.4 02/06/10
2
#
3
# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
4
#
5
6
# Component Font Mappings
7
#
8
serif.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
9
10
serif.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
11
12
serif.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
13
14
serif.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
15
16
sansserif.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
17
18
sansserif.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
19
20
sansserif.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
21
22
sansserif.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
23
24
monospaced.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
25
26
monospaced.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
27
28
monospaced.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
29
30
monospaced.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
31
32
dialog.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
33
34
35
dialog.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
36
37
dialog.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
38
39
dialog.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
40
41
dialoginput.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
42
43
dialoginput.italic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
44
45
dialoginput.bold.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
46
47
dialoginput.bolditalic.0=-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
48
# Missing Glyph Character
49
#
50
default.char=274f
51
52
# Component Font Character Encodings
53
#
54
fontcharset.serif.0=sun.io.CharToByteISO8859_1
55
fontcharset.serif.1=sun.awt.motif.CharToByteX11GBK
56
57
fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
58
fontcharset.sansserif.1=sun.awt.motif.CharToByteX11GBK
59
60
fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
61
fontcharset.monospaced.1=sun.awt.motif.CharToByteX11GBK
62
63
fontcharset.dialog.0=sun.io.CharToByteISO8859_1
64
fontcharset.dialog.1=sun.awt.motif.CharToByteX11GBK
65
66
fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
67
fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11GBK
68
69
# Exclusion Ranges
70
#
71
72
# XFontSet Information
73
#
74
fontset.serif.plain=\
75
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
76
77
fontset.serif.italic=\
78
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
79
80
fontset.serif.bold=\
81
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
82
83
fontset.serif.bolditalic=\
84
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
85
86
fontset.sansserif.plain=\
87
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
88
89
fontset.sansserif.italic=\
90
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
91
92
fontset.sansserif.bold=\
93
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
94
95
fontset.sansserif.bolditalic=\
96
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
97
98
fontset.monospaced.plain=\
99
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
100
101
fontset.monospaced.italic=\
102
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
103
104
fontset.monospaced.bold=\
105
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
106
107
fontset.monospaced.bolditalic=\
108
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
109
110
fontset.dialog.italic=\
111
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
112
113
fontset.dialog.bold=\
114
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
115
116
fontset.dialog.bolditalic=\
117
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
118
119
fontset.dialog.plain=\
120
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
121
122
fontset.dialoginput.italic=\
123
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
124
125
fontset.dialoginput.bold=\
126
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
127
128
fontset.dialoginput.bolditalic=\
129
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
130
131
fontset.dialoginput.plain=\
132
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
133
134
#fontset.default=\
135
#-b
&h-lucida-medium-r-normal-sans-
*-%d-*-*-p-*-iso10646-1,\
136
#-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0
137
138
fontset.default=\
139
-misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1
140
141
仔細(xì)觀察你可以發(fā)現(xiàn)替換的內(nèi)容基本都是".0"的內(nèi)容
特別要注意
1
# Missing Glyph Character
2
#
3
default.char=274f
4
5
# Component Font Character Encodings
6
#
7
fontcharset.serif.0=sun.io.CharToByteISO8859_1
8
fontcharset.serif.1=sun.awt.motif.CharToByteX11GBK
9
10
fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
11
fontcharset.sansserif.1=sun.awt.motif.CharToByteX11GBK
12
13
fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
14
fontcharset.monospaced.1=sun.awt.motif.CharToByteX11GBK
15
16
fontcharset.dialog.0=sun.io.CharToByteISO8859_1
17
fontcharset.dialog.1=sun.awt.motif.CharToByteX11GBK
18
19
fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
20
fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11GBK
21
22
# Exclusion Ranges
23
#
24
25
# XFontSet Information
26
#
27
28
修改后的詞部分內(nèi)容與原文件內(nèi)容不一致,注意修改此處
最后值得注意的是在font.properties.zh內(nèi)容的結(jié)尾加上
1
appendedfontpath=/usr/lib/X11/fonts/truetype
這是為了讓jvm去尋找字體文件
你也可以將環(huán)境變量export JAVA_FONTS=/usr/lib/X11/fonts/truetype假如系統(tǒng)或你的賬號啟動sh的.profile里
至此中文問題配置完畢
四、其他問題,
如果使用tomcat 設(shè)置環(huán)境變量:
CATALINA_OPTS="-Djava.awt.headless=true"
export CATALINA_OPTS
(如果你想每次開機(jī)自動生效,則可把這兩句寫入系統(tǒng)或者你的賬號啟動sh的.profile里)
到此關(guān)于linux顯示jfreechart圖像顯示亂碼的環(huán)境配置問題既可以得到解決,其余基本就是代碼的問題,可仔細(xì)檢查jfreechat文檔,
jfreechart關(guān)注點:
設(shè)置Legend的font
x軸坐標(biāo)名稱的font
y軸坐標(biāo)名稱的font
posted on 2008-07-01 18:46
acerbic coffee
閱讀(4034)
評論(5)
編輯
收藏
所屬分類:
個人筆記
FeedBack:
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2008-12-25 10:19 |
劉鑫
其實根本沒有那么麻煩
直接天網(wǎng)ftp搜索下載simsun.ttf
然后在jre/lib/fonts下面新建fallback文件夾,將simsun.ttf放入即可
回復(fù)
更多評論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決[未登錄]
2010-09-16 13:57 |
liuyang
樓上正解,感謝!
回復(fù)
更多評論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2012-06-18 18:43 |
bincrack
絕對正解 @liuyang
回復(fù)
更多評論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2013-10-16 13:37 |
zzs
是的@劉鑫
回復(fù)
更多評論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2014-02-28 10:51 |
haer
樓上絕對正解
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
JFreeChart在linux端圖片顯示亂碼問題解決
(轉(zhuǎn)載)XSLT分頁顯示XML數(shù)據(jù)并對所有數(shù)據(jù)重新排序
知道得越多,不知道得也就越多
很久不來了!
jfreeChart Api 簡要介紹
叫人郁悶的chm文件打開
一罐啤酒,一碗泡面,一盒香煙,一個夜晚.......
墨跡!
千金難買!
南京之旅!
Copyright ©2025 acerbic coffee Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
国产亚洲综合久久
|
婷婷综合缴情亚洲狠狠尤物
|
久久不见久久见免费影院www日本
|
亚洲一级片免费看
|
免费无遮挡无码永久视频
|
最近中文字幕mv免费高清在线
|
日本片免费观看一区二区
|
免费无码又爽又刺激高潮
|
国产禁女女网站免费看
|
国产A在亚洲线播放
|
国产亚洲人成网站观看
|
国产男女爽爽爽爽爽免费视频
|
亚洲日韩人妻第一页
|
久久亚洲中文字幕精品有坂深雪
|
国产黄色片免费看
|
女人张开腿等男人桶免费视频
|
亚洲精品久久久www
|
亚洲午夜国产精品无卡
|
亚洲AV男人的天堂在线观看
|
国产一区二区三区免费观在线
|
午夜免费福利网站
|
美女黄频a美女大全免费皮
|
99久久免费国产香蕉麻豆
|
一级黄色免费毛片
|
91免费国产自产地址入
|
亚洲中文字幕一二三四区苍井空
|
国产成人自产拍免费视频
|
久久久久久亚洲精品
|
美女视频黄频a免费大全视频
|
国产成人亚洲综合
|
69视频免费在线观看
|
亚洲精品女同中文字幕
|
亚洲视频在线观看地址
|
久久av免费天堂小草播放
|
久久久久亚洲精品日久生情
|
猫咪免费人成网站在线观看
|
亚洲综合日韩久久成人AV
|
蜜臀亚洲AV无码精品国产午夜.
|
曰批视频免费30分钟成人
|
亚洲高清在线视频
|
蜜桃精品免费久久久久影院
|