在Centos7中,启动基于Swing的Jar文件时,出现中文变成小方块、无法识别的解决方案


1、问题描述

在使用以下命令:

java -jar -Djava.awt.headless=false 运行jar包的全路径

启动一个基于Swing的java程序时,产生了中文变成小方块、无法识别的问题。
在这里插入图片描述


2、原因分析

当在虚拟机中安装新的操作系统时,由于系统的默认设置中可能不包含中国字符集,您可能需要手动安装适合中文显示的字体,需要将Windows上的中文字体上传到虚拟机中。


3、解决方案

首先需要下载fontconfig,该命令可以管理系统中的字体。

3.1、下载fontconfig

yum下载:

yum install fontconfig

repotrack下载:

repotrack --download_path=/opt/temp/fontconfig fontconfig

在这里插入图片描述

3.2、安装fontconfig

yum下载无需安装。使用repotrack需要将安装包上传到需要配置环境的虚拟机上,本文在/opt/temp/目录路径下,执行rpm -Uvh *.rpm --force --nodeps

mkdir /opt/temp/fontconfig
cd /opt/temp/fontconfig
rpm -Uvh *.rpm --force --nodeps

3.3、查看中文字体

安装完毕后,使用命令 fc-list :lang=zh用于列出系统中已安装的支持中文的字体。

fc-list :lang=zh

在这里插入图片描述

发现新系统没有任何中文字体。

3.4、拷贝字体

首先找到windows下的Fonts目录(C:\Windows\Fonts);

将该目录下的字体拷贝,上传到虚拟机上。并在虚拟机中创建如下中文字体路径(目录名自定义):

mkdir -p /usr/share/fonts/chinese

将字体内容拷贝到/usr/share/fonts/chinese 目录下:

在这里插入图片描述

给文件夹添加权限:

chmod 755 -R /usr/share/fonts/chinese

3.5、编辑配置文件

vi /etc/fonts/fonts.conf

将中文字体所在路径加进去:

<dir>/usr/share/fonts/chinese</dir>

在这里插入图片描述

保存后,最后刷新字体缓存

fc-cache   # 刷新字体缓存
fc-list    # 查看字体列表

在这里插入图片描述

3.6、运行程序验证

最后再次运行jar指令,可以发现解决了中文乱码问题。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Le`soleil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值