• YAMLException : java.nio.charset.MalformedInputException : Input length = 1


    场景还原

    有小伙伴反应SpringBoot项目启动异常,但是同组其他伙伴的无问题!

    ERROR org.springframework.boot.SpringApplication  -
    Application run failed
    
    org.yaml.snakeyaml.error.YAMLException: 
    java.nio.charset.MalformedInputException : Input length = 1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    根据异常信息提示,一般是YAML配置文件格式或编码集有问题。

    • yml配置文件不是UTF-8的格式
    • 配置中含有中文注释导致的

    异常原因

    java.nio.charset定义用来在字节和 Unicode 字符之间转换的 charset、解码器和编码器

    java.nio.charset.MalformedInputException异常表示输入的字符流或字节流无效,即无法解析。

    YAML文件是一种文本文件,它使用Unicode字符集编码存储数据。常见的编码格式有UTF-8、UTF-16等。

    在SnakeYAML库中,当解析YAML文件时,如果文件的编码格式与解析器的期望不符,就会抛出这个异常。

    解决方案

    项目的编码格式一般统一为UTF-8

    编码集修改

    • 将IDEA的编码设置全部设置为UTF-8

    在这里插入图片描述

    • 如果1没办法解决还是报同样的错,那么在pom中加入如下配置
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>
    </properties>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    重新配置yml文件

    有两个解决思路:

    1. 将yml配置文件中的中文注释全部删除
      但是本来是需要注释才能对各类配置做特定解释,所以不建议

    2. 新建一个配置文件为UTF-8的文件,将原有配置使用txt文件夹打开,再重新复制到新的yml配置文件中

    3. 如果团队的就复制其他小伙伴的,或者是以前正常运行项目的文件


    以上两种方式全部尝试过依然失败告终。

    JDK版本修改

    仔细检查发现他们小组间未统一JDK版本,有成员尝试新特性jdk11 17 21忘记改回

    重新配置JDK版本后,程序正常运行并访问成功!

    在这里插入图片描述

    正常启动效果

    // 大威天龙,大罗法咒,般若诸佛,般若巴嘛轰。哼!雕虫小技,竟敢班门弄斧,大威天龙!//
    //                          _ooOoo_                               //
    //                         o8888888o                              //
    //                         88" . "88                              //
    //                         (| ^_^ |)                              //
    //                         O\  =  /O                              //
    //                      ____/`---'\____                           //
    //                    .'  \\|     |//  `.                         //
    //                   /  \\|||  :  |||//  \                        //
    //                  /  _||||| -:- |||||-  \                       //
    //                  |   | \\\  -  /// |   |                       //
    //                  | \_|  ''\---/''  |   |                       //
    //                  \  .-\__  `-`  ___/-. /                       //
    //                ___`. .'  /--.--\  `. . ___                     //
    //              ."" '<  `.___\_<|>_/___.'  >'"".                  //
    //            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
    //            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
    //      ========`-.____`-.___\_____/___.-`____.-'========         //
    //                           `=---='                              //
    //      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
    //              佛祖保佑       永不宕机     永无BUG                    //
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    CAD安装不正确,用不了
    Python: 使用pytest进行代码测试
    网络探索利器:深入理解 nc、ncat 和 telnet 的作用和用法
    MySQL系列-高级-深入理解Mysql事务隔离级别与锁机制01
    YOLOv9改进策略 | 添加注意力篇 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)
    基于非线性收敛因子和局部扰动的鲸鱼算法-附代码
    1.4_12 Axure RP 9 for mac 高保真原型图 - 案例11 【动态面板-滚动条1】
    【WSN路由】异构无线传感器网络分布式节能分簇算法的设计(DEEC)附Matlab代码
    Python潮流周刊#3:PyPI 的安全问题
    经典算法——直接插入排序
  • 原文地址:https://blog.csdn.net/Klhz555/article/details/133518363