acerbic coffee
走自己的路,讓別人跑步
BlogJava
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 26,comments - 14,trackbacks - 0
<
2010年9月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
個(gè)人筆記(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)
個(gè)人記錄(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ā)簡略
其他
下載
孫維琴個(gè)人網(wǎng)站
搜索
積分與排名
積分 - 47216
排名 - 1037
最新評(píng)論
1.?re: JFreeChart在linux端圖片顯示亂碼問題解決
樓上絕對(duì)正解
--haer
2.?re: JFreeChart在linux端圖片顯示亂碼問題解決
是的@劉鑫
--zzs
3.?re: JFreeChart在linux端圖片顯示亂碼問題解決
絕對(duì)正解 @liuyang
--bincrack
4.?re: JFreeChart在linux端圖片顯示亂碼問題解決[未登錄]
樓上正解,感謝!
--liuyang
5.?re: tomcat啟動(dòng)加載xml文件的配置在什么地方?
要在host 節(jié)點(diǎn)配置
--hout
閱讀排行榜
1.?無意中查sql中as的用法搜索到的一些經(jīng)典的sql語句(6928)
2.?JFreeChart在linux端圖片顯示亂碼問題解決(4035)
3.?MyEclipse快捷鍵與插件大全(3969)
4.?tomcat啟動(dòng)加載xml文件的配置在什么地方?(2067)
5.?tomcat服務(wù)器配置chm.rar等文件下載!(1762)
評(píng)論排行榜
1.?JFreeChart在linux端圖片顯示亂碼問題解決(5)
2.?學(xué)習(xí)struts有那么難么?(5)
3.?今天自己做得一個(gè)js動(dòng)態(tài)改變圖片的程序!!(1)
4.?無意中查sql中as的用法搜索到的一些經(jīng)典的sql語句(1)
5.?tomcat啟動(dòng)加載xml文件的配置在什么地方?(1)
JFreeChart在linux端圖片顯示亂碼問題解決
最近項(xiàng)目遇到linux上顯示JFreeChart圖形,在網(wǎng)上搜索到了很多關(guān)于此方面的信息,詳細(xì)的也有,不過大多環(huán)境都是redhat+jdk1.4但乍一看說得不太清楚,搞了半天終于搞定了,現(xiàn)解釋,
環(huán)境:suse10,jdk1.4.2
相同部分就不再多說,以下部分內(nèi)容,挑csdn上一個(gè)詳細(xì)的文章粘貼出來,順便總結(jié)一下
一、 錯(cuò)誤描述
基本上的錯(cuò)誤都是以下錯(cuò)誤
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
)
錯(cuò)誤原因么,大概就是jvm找不到字體文件
二、問題解決:
寫一個(gè)測試系統(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
對(duì)于我們來說關(guān)注的地方其實(shí)只有第一行“zh”,說明目前環(huán)境是簡體中文,
從Sun的文檔"Adding Fonts to the Java Runtime"[參見參考文獻(xiàn)1]中,我們可以得知: 在英文環(huán)境下,字體屬性由無后綴的font.properties 定義。為了一些操作系統(tǒng)的特殊問題,字體屬性文件的名字可以加入操作系統(tǒng)的版本號(hào)作為后綴。例如,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后綴識(shí)別,格式為font.properties.<locale>。該<locale>實(shí)際上由<language>_<region>_<encoding>三部分構(gòu)成。而<language>、<region>和<encoding>分別對(duì)應(yīng)了系統(tǒng)屬性(由System.getProperty方法返回的字符串)"user.language"、"user.region"和"file.encoding"。而這個(gè)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文件,如果沒有則新建一個(gè),或者copy font.properties
1
cp font.properties font.properties.zh
三、檢查
很多人介紹的都是copy或引用/usr/share/fonts/zh_CN/TrueType目錄下的中文字體
但是有些suse上不存在/usr/share/fonts這個(gè)目錄,所以有時(shí)候會(huì)叫人感覺很頭疼,但是仔細(xì)檢查你會(huì)發(fā)現(xiàn)路經(jīng)/usr/lib/X11/font/truetype存在,所以并不一定要/usr/share/fonts/zh_CN/TrueType這個(gè)文件夾
用vi打開/usr/lib/X11/font/truetype/fonts.dir文件,
搜索gbk或gb2312(一個(gè)人需要而定),將其中的一個(gè)拷貝出來此處,我們搜索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 是因?yàn)樵?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)或你的賬號(hào)啟動(dòng)sh的.profile里
至此中文問題配置完畢
四、其他問題,
如果使用tomcat 設(shè)置環(huán)境變量:
CATALINA_OPTS="-Djava.awt.headless=true"
export CATALINA_OPTS
(如果你想每次開機(jī)自動(dòng)生效,則可把這兩句寫入系統(tǒng)或者你的賬號(hào)啟動(dòng)sh的.profile里)
到此關(guān)于linux顯示jfreechart圖像顯示亂碼的環(huán)境配置問題既可以得到解決,其余基本就是代碼的問題,可仔細(xì)檢查jfreechat文檔,
jfreechart關(guān)注點(diǎn):
設(shè)置Legend的font
x軸坐標(biāo)名稱的font
y軸坐標(biāo)名稱的font
posted on 2008-07-01 18:46
acerbic coffee
閱讀(4035)
評(píng)論(5)
編輯
收藏
所屬分類:
個(gè)人筆記
FeedBack:
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2008-12-25 10:19 |
劉鑫
其實(shí)根本沒有那么麻煩
直接天網(wǎng)ftp搜索下載simsun.ttf
然后在jre/lib/fonts下面新建fallback文件夾,將simsun.ttf放入即可
回復(fù)
更多評(píng)論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決[未登錄]
2010-09-16 13:57 |
liuyang
樓上正解,感謝!
回復(fù)
更多評(píng)論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2012-06-18 18:43 |
bincrack
絕對(duì)正解 @liuyang
回復(fù)
更多評(píng)論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2013-10-16 13:37 |
zzs
是的@劉鑫
回復(fù)
更多評(píng)論
#
re: JFreeChart在linux端圖片顯示亂碼問題解決
2014-02-28 10:51 |
haer
樓上絕對(duì)正解
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
JFreeChart在linux端圖片顯示亂碼問題解決
(轉(zhuǎn)載)XSLT分頁顯示XML數(shù)據(jù)并對(duì)所有數(shù)據(jù)重新排序
知道得越多,不知道得也就越多
很久不來了!
jfreeChart Api 簡要介紹
叫人郁悶的chm文件打開
一罐啤酒,一碗泡面,一盒香煙,一個(gè)夜晚.......
墨跡!
千金難買!
南京之旅!
Copyright ©2025 acerbic coffee Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
亚洲精品久久无码
|
免费一级毛片免费播放
|
国产亚洲一区二区精品
|
黄色永久免费网站
|
久久精品国产亚洲AV麻豆不卡
|
中出五十路免费视频
|
中文字幕精品亚洲无线码一区
|
亚洲国产成人VA在线观看
|
国产亚洲精品资在线
|
jzzjzz免费观看大片免费
|
伊人婷婷综合缴情亚洲五月
|
精选影视免费在线
|
最近免费中文字幕大全视频
|
亚洲视频免费在线播放
|
国产又黄又爽又猛免费app
|
99久久国产亚洲综合精品
|
久久精品免费一区二区三区
|
可以免费观看一级毛片黄a
|
阿v免费在线观看
|
国产成人亚洲精品狼色在线
|
久久九九全国免费
|
亚洲av无码久久忘忧草
|
日韩一级免费视频
|
国产精品美女久久久免费
|
久久精品蜜芽亚洲国产AV
|
成人午夜视频免费
|
午夜不卡AV免费
|
亚洲高清在线播放
|
无限动漫网在线观看免费
|
日韩精品无码永久免费网站
|
亚洲视频在线视频
|
国产美女无遮挡免费视频网站
|
亚洲成色在线影院
|
成人免费无码大片a毛片
|
久久最新免费视频
|
亚洲伊人久久大香线蕉在观
|
91精品免费国产高清在线
|
羞羞视频在线免费观看
|
久久精品国产亚洲精品2020
|
免费一区二区视频
|
亚洲香蕉免费有线视频
|