java linux 字体设置_linux下面java字体的设置

这两天碰到一个棘手的问题, 就是java的字体到了mac下面, 宋体不见了, 变成了simsun, 这个对应关系如何产生的呢?

先记下这个问题。

在Linux中,JAVA程序的中文默认可能不正常:或是显示为方框,或是不够清晰。这是由于JRE字体配置不正确所导致的,修改JRE的字体配置文件可以解决这个问题。

配置文件位置

JRE的字体配置文件存放在

# 显示当前系统中Java字体配置文件名称:

echo $JAVA_HOME/jre/lib/fontconfig.properties

其中,$JAVA_HOME环境变量表示JRE所在的路径,在安装了JAVA环境的系统中,通常已经设定。如在有些系统中$JAVA_HOME形如/usr/lib/jvm/java-6-sun。

0818b9ca8b590ca3270a3433284dd417.png

提示:

对于某些自带了JRE的软件,如Matlab等,配置字体时只要将上面的

$JAVA_HOME更为其自带的JRE的路径即可,如

MATLAB中文字体配置。

如果这个文件不存在,可以从fontconfig.properties.src复制一个:

# 本文后续的所有命令可能需要root权限,请自行添加sudo

cp $JAVA_HOME/jre/lib/fontconfig.properties.src $JAVA_HOME/jre/lib/fontconfig.properties

# 有些系统中该文件是只读的……

chmod +w $JAVA_HOME/jre/lib/fontconfig.properties

为了避免受当前fontconfig配置文件的影响,备份并移除所有bfc文件:

mkdir $JAVA_HOME/jre/lib/bfcbak/

mv $JAVA_HOME/jre/lib/*.bfc $JAVA_HOME/jre/lib/bfcbak/

准备字体

首先请确定要使用的字体,如Windows中的宋体、黑体,或Linux中文泉驿正黑体。

接着要找到字体文件,文泉驿系列字体一般安装在/usr/share/fonts中包含wqy的某个文件夹中,文件名wqy-zenhei.ttc或wqy-zenhei.ttf。宋体则在Windows的分区中,一般是WINDOWS\Fonts\simsun.ttc。

建议将想用的字体文件复制(或创建符号链接)到$JAVA_HOME/jre/lib/fonts,后面的配置会简单一点。

修改配置文件

打开配置文件,如$JAVA_HOME/jre/lib/fontconfig.properties,并对其进行如下操作:

获取字体定义

到存放有字体文件的文件夹,如$JAVA_HOME/jre/lib/fonts,运行下述命令

# Make font scale

mkfontscale

# 寻找文件中含有iso10646的行(对应Unicode类的编码)

grep 10646 fonts.scale

会看到这样的一些行:

simsun.ttc -misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1

wqy-microhei.ttc -misc-wenquanyi micro hei-medium-r-normal--0-0-0-0-p-0-iso10646-1

请复制相应字体对应的行备用。

加入字体定义

在version=1后面加入

allfonts.chinese-arphic1=-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1

如果原来文件中还有设置allfonts.chinese-arphic1的,就把它们注释掉。

指明字体路径

如果已经把字体复制到$JAVA_HOME/jre/lib/fonts,可以略过此步。否则须在配置文件中加上字体文件的完整路径,以宋体为例:

filename.-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1=simsun.ttc的完整路径

修改字体搜索序列

在配置文件中查找sequence.allfonts,如果其后的sequence开头的行中有chinese-arphics1,可以略过此步,否则在其后面加入一行:

sequence.fallback=chinese-arphic1

解决字显示不清晰的问题

有时看到英文显示有锯齿,有时看到中文字边缘不清,这可能都与字体反锯齿的设置不当有关。可以在/etc/profile或~/.bashrc末尾加入:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

其中的lcd也可改为gasp,但效果较好的常是lcd。

相关资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值