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

文章目录

  • 1、问题描述
  • 2、原因分析
  • 3、解决方案
    • 3.1、下载fontconfig
    • 3.2、安装fontconfig
    • 3.3、查看中文字体
    • 3.4、拷贝字体
    • 3.5、编辑配置文件
    • 3.6、运行程序验证


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

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

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);

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

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

mkdir -p /usr/share/fonts/chinese

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

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

给文件夹添加权限:

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

3.5、编辑配置文件

vi /etc/fonts/fonts.conf

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

/usr/share/fonts/chinese

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

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

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

在这里插入图片描述

3.6、运行程序验证

最后再次运行jar指令,可以发现解决了中文乱码问题。
在Centos7中,启动基于Swing的Jar文件时,出现中文变成小方块、无法识别的解决方案_第5张图片

你可能感兴趣的:(Linux,linux,jar,swing)