解决Java应用在Linux下无法正常水印生僻字
昨天接到一个投诉,说是他的水印是一个方框。刚开始还以为是程序出了问题,乱码了呢,接过来一看,发现水印不了的字比较生僻。于是查了一番程序,做了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下无法正常水印生僻字相关推荐
- 解决aapt命令在Linux下无法运行的问题
解决aapt命令在Linux下无法运行的问题 参考文章: (1)解决aapt命令在Linux下无法运行的问题 (2)https://www.cnblogs.com/zhjsll/p/5961291.h ...
- 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 ...
- 解决Java Web对Linux服务器不能上传文件的难题
一 Java Web文件上传程序 页面中用html或某个js框架,弹出选择上传文件界面,用户选择文件后上传:传到服务器上调用servlet进行处理,把接受到的内容写入服务器相应目录.Java Web上 ...
- java createjpeg4_在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题
在rh8 linux 下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片,XServer已启动.出现如下问题 错误提示如下 java.lang.Int ...
- Linux java集成安装环境,Linux下Java环境安装
本节主要讲解Linux(Centos 6.5)下Java环境的安装 1. 卸载机器上默认安装的JDK 在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装 ...
- logger 参数列表过长_[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题...
在维护实习单位服务器的过程中,偶然发现一个有350万文件的文件夹需要清理,于是我习惯性执行了rm -rf ./*,却在数秒后被告知"参数列表过长".在一番折腾过后,我终于通过取巧的 ...
- winscp linux中文文件夹名称乱码,解决windows传送到linux下中文文件名及文件内容乱码问题...
linux下文件编码转换: 方法一: 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式 :set fileencoding=utf-8 或者 11)设置文件集合,即要对哪些文件进行操 ...
- drcom linux怎么运行,解决64位Ubuntu Linux下不能使用drcom上网的3种方法(下)
不屈不挠 2016年更换客户端,已经支持linux64位.最新版民间客户端见drcoms/jlu-drcom-client 第三种,安装32位运行库 只需要答案的请输入以下命令 1 2 3 4sudo ...
- linux下查看java进程日志,linux 下查看java进程
Maven(二)使用eclipse创建maven多模块项目 maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创 ...
最新文章
- 深入理解C语言-二级指针三种内存模型
- MQ各个元素的详细理解
- vs code 插件_[VSCode插件开发] 由浅入深,带你了解如何打造百万级产品
- echarts tooltip被遮挡_echarts 的tooltip定位到当前图,避免溢出和遮挡
- ORA-12519: TNS:no appropriate service handler found 解决方法
- springboot版本兼容
- html密码本源码,YoungxjPwd密码本 PHP版 v1.0
- JAVA的类名.this
- ios python3闪退_解决Python3 cx_Freeze打包闪退/无法执行以及No module named 'matplotlib.backends.backend_tkagg'...
- 2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)
- 《HeadFirst SQL》笔记
- win10下装黑苹果双系统_预算5000的黑苹果/WIN双系统台式电脑组装建议
- win10无线投屏_win10怎么进行无线投屏 —卡菜克特别情报
- 致远OA漏洞学习——A6版本Session泄漏伪造漏洞
- 算法题--递归解法(化整思想、24点、全排列、单词迷宫解法加步骤)
- 基于Transformer的NLP智能对话机器人实战课程培训
- 我为什么要辞掉20万的工作去读研?
- MNL(使用自己的数据集)
- kaos linux 包管理,KaOS v2018.12版正式发布附下载-独立的 Linux 发行版
- 新网互联确认19日DNS服务器遭恶意攻击,导致数以万计的域名无法访问