昨天接到一个投诉,说是他的水印是一个方框。刚开始还以为是程序出了问题,乱码了呢,接过来一看,发现水印不了的字比较生僻。于是查了一番程序,做了UT,当然是在Windows下做的。后来在Linux下又运行了一下水印的程序,发现水印的效果与投诉一模一样。这样就断定了Linux下缺少了这个生僻字的字体。想起以前玩Linux美化时,总是要搞字体。这次也不例外,找了一些文档。

最简单的解决方案是:

1)在$JAVA_HOME/jre/lib/fonts下新建一个fallback目录,让Java程序渲染生僻字时在fallback里面找。

2)把windows/fonts/simsun.ttc拷贝到fallback去

首先来说说产生这个问题的原因。java程序启动的时候会去在$JAVA_HOME/jre/lib/fonts目录下寻找相应的字体来显示。由于 JDK默认没有中文字体,所以我们需要手工的来设置一下,让java应用程序能够找到相应的中文字体。这样就能够解决问题了。

现在思路已经很清晰了,那我们就来着手解决问题吧。

基本步骤如下:

1)cd $JAVA_HOME/jre/lib/fonts

2)mkdir fallback

3)cp xxx.ttf fallback #xxx.ttf代表你想要的中文字体文件

4)cd fallback

5)mkfontscale

6)mkfontdir

其实,我们可以一条命令解决这个问题。将Linux系统的字体目录作为JDK下面的一个字体目录连接。

ln -s $FONTS_PATH/FONT_DIR $JAVA_HOME/jre/lib/fonts/fallback

你在打开你的java应用程序就会看到久违的中文了。

参考:

  • Internationalization 101: Setting up a fallback font
  • Font Configuration Files
  • Java Internationalization FAQ

解决Java应用在Linux下无法正常水印生僻字相关推荐

  1. 解决aapt命令在Linux下无法运行的问题

    解决aapt命令在Linux下无法运行的问题 参考文章: (1)解决aapt命令在Linux下无法运行的问题 (2)https://www.cnblogs.com/zhjsll/p/5961291.h ...

  2. linux java -cp lt; .txt_补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能...

    蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...

  3. 解决Java Web对Linux服务器不能上传文件的难题

    一 Java Web文件上传程序 页面中用html或某个js框架,弹出选择上传文件界面,用户选择文件后上传:传到服务器上调用servlet进行处理,把接受到的内容写入服务器相应目录.Java Web上 ...

  4. java createjpeg4_在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题

    在rh8   linux   下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片,XServer已启动.出现如下问题 错误提示如下 java.lang.Int ...

  5. Linux java集成安装环境,Linux下Java环境安装

    本节主要讲解Linux(Centos 6.5)下Java环境的安装 1. 卸载机器上默认安装的JDK 在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装 ...

  6. logger 参数列表过长_[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题...

    在维护实习单位服务器的过程中,偶然发现一个有350万文件的文件夹需要清理,于是我习惯性执行了rm -rf ./*,却在数秒后被告知"参数列表过长".在一番折腾过后,我终于通过取巧的 ...

  7. winscp linux中文文件夹名称乱码,解决windows传送到linux下中文文件名及文件内容乱码问题...

    linux下文件编码转换: 方法一: 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式 :set fileencoding=utf-8 或者 11)设置文件集合,即要对哪些文件进行操 ...

  8. drcom linux怎么运行,解决64位Ubuntu Linux下不能使用drcom上网的3种方法(下)

    不屈不挠 2016年更换客户端,已经支持linux64位.最新版民间客户端见drcoms/jlu-drcom-client 第三种,安装32位运行库 只需要答案的请输入以下命令 1 2 3 4sudo ...

  9. linux下查看java进程日志,linux 下查看java进程

    Maven(二)使用eclipse创建maven多模块项目 maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创 ...

最新文章

  1. 深入理解C语言-二级指针三种内存模型
  2. MQ各个元素的详细理解
  3. vs code 插件_[VSCode插件开发] 由浅入深,带你了解如何打造百万级产品
  4. echarts tooltip被遮挡_echarts 的tooltip定位到当前图,避免溢出和遮挡
  5. ORA-12519: TNS:no appropriate service handler found 解决方法
  6. springboot版本兼容
  7. html密码本源码,YoungxjPwd密码本 PHP版 v1.0
  8. JAVA的类名.this
  9. ios python3闪退_解决Python3 cx_Freeze打包闪退/无法执行以及No module named 'matplotlib.backends.backend_tkagg'...
  10. 2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)
  11. 《HeadFirst SQL》笔记
  12. win10下装黑苹果双系统_预算5000的黑苹果/WIN双系统台式电脑组装建议
  13. win10无线投屏_win10怎么进行无线投屏 —卡菜克特别情报
  14. 致远OA漏洞学习——A6版本Session泄漏伪造漏洞
  15. 算法题--递归解法(化整思想、24点、全排列、单词迷宫解法加步骤)
  16. 基于Transformer的NLP智能对话机器人实战课程培训
  17. 我为什么要辞掉20万的工作去读研?
  18. MNL(使用自己的数据集)
  19. kaos linux 包管理,KaOS v2018.12版正式发布附下载-独立的 Linux 发行版
  20. 新网互联确认19日DNS服务器遭恶意攻击,导致数以万计的域名无法访问

热门文章

  1. FFMPEG 最全版本介绍及下载
  2. 如何在Word中自由移动图片?在 Microsoft Word 中自由移动图片的方法!
  3. 随机数相加等于固定值_excel表格中如何使随机数相加成一个固定值
  4. 思科 CCNA2 第四章测验答案
  5. 虚拟手机的服务器地址和端口是什么,如何查看服务器地址和端口号
  6. 阿里研究院:揭秘女性创业的“三生三世”
  7. 计算机浮点数规格化表示(转)
  8. 合众达电子SEED_VPM642开发板调试及应用
  9. dicom 胶片排版打印
  10. java 加背景颜色_Java 给Word文档添加背景颜色