Java生成词云
Contents
遇到Linux环境下, 中文显示不正常, 这是因为Linux环境中, 字体设置不正确导致的.这个可以参考 issue
Java中安装字体
全局VM
将字体文件放到 jre/lib/fonts/
目录下, 然后重启你的应用即可
仅在App生效
这时, 可以自行注册字体驱动即可(ClassPathResource
是Spring组件的一个类, 如果你不用Spring来开发, 可以修改为 new File(...)
, Font.createFont()
方法也可以接受一个 File
参数):
/**
* 注册字体
*/
private void registeFont() {
try {
final GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
for (final String fontName : FONTS_FILE_NAME) {
final ClassPathResource classPathResource = new ClassPathResource(fontName);
final boolean ok = ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, classPathResource.getInputStream()));
log.info("注册字体 {} => {}", ok ? "成功" : "失败", classPathResource.getPath());
}
} catch (IOException | FontFormatException e) {
log.error(e.getMessage(), e);
}
}
查看当前环境可用字体:
private void listFonts() {
final GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
for (String fontName : ge.getAvailableFontFamilyNames()) {
log.info("font name => {}", fontName);
}
}