• Java加载外部文件,报错java.awt.FontFormatException: bad table, tag=xxx


    Java加载外部字体场景

    原因?

    字体文件被损坏导致的,可以读取字体文件验证,其根本原因是maven打包时,如果开启了filtering,会在打包时重新编译资源目录下的文件,导致文件编译后无法使用。

    解决?

    前提:

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>application-*.properties</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application-${profiles.active}.properties</include>
                <include>application.properties</include>
            </includes>
        </resource>
    </resources>

    Maven:加了上面配置,在打包项目时会对项目进行统一编码,但是部分文件可能不需要进行重新编码,例如:加载的字体文件,所以需要过滤掉不需要编码的文件,不对其进行统一编码。

    注:filtering是 maven 的 resource 插件 提供的功能,主要用来替换项目中的资源文件(*.xml、*.properties)当中的 ${...}。

    解决方法:在build标签下添加如下代码,在资源插件中排除对应类型的文件。

    例如,过滤文字文件,就只需加<nonFilteredFileExtension>ttf</nonFilteredFileExtension>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <!-- 过滤后缀不需要转码的文件后缀名.crt-->
                <nonFilteredFileExtensions>
                    <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
                    <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                    <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                    <nonFilteredFileExtension>zip</nonFilteredFileExtension>
                    <nonFilteredFileExtension>cer</nonFilteredFileExtension>
                    <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                    <nonFilteredFileExtension>py</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
    </plugins>
    原文:Java加载外部文件,报错java.awt.FontFormatException: bad table, tag=xxx_程序员Forlan的博客-CSDN博客
  • 相关阅读:
    Kudu vs HBase
    数据分析怎么更直观?十分钟构建数据看板
    The Beam Model:Stream & Tables翻译(上)
    3分钟掌握一个有数小技能:收入贡献分析
    猛犸机器学习开发实践
    SparkSQL大数据实战:揭开Join的神秘面纱
    细说Mammut大数据系统测试环境Docker迁移之路
    python中的闭包与装饰器
    import详解
    python中的with与上下文管理器
  • 原文地址:https://www.cnblogs.com/huozhonghun/p/15840212.html
Copyright © 2020-2023  润新知