SpringBoot启动java.nio.charset.MalformedInputException: Input length = 1报错的解决方案

 更新时间:2023年07月09日 12:03:18   作者:经理,天台风好大  
本文主要介绍了SpringBoot启动java.nio.charset.MalformedInputException: Input length = 1报错的解决方案

最近新搭的一个eureka项目,启动时,会报MalformedInputException这个异常,

百度了很久,网上说的千篇一律,

  • 有的说,把yml复制到txt再复制回来
  • 有的说,设置idea的utf-8环境

这些根本没有根治这个问题。

下面是这个简单的异常信息

java.lang.IllegalStateException: Failed to load property source from 'file:/D:/IDEA/spring-cloud/sp05-eureka/target/classes/application.yml' (classpath:/application.yml)
 
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

出现这个的原因,就是解析yml文件时,中文字符集不是utf-8的原因,

但是通过cmd命令,mvn clean compile 后,项目又可以成功运行

找了很久问题,使用eclipse和idea同时测试,最终发现,是maven在项目编译时,默认字符集编码是GBK

一、检查pom文件

我们首先需要在pom文件中设置,编译时编码utf-8即可,如果解决不了进行第二步

<properties>
   <java.version>1.8</java.version>
    <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

二、修改编码格式

然后重新启动项目!!!!

三、最不应该出现的错误

就是你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,这时就需要你把application.yml中的内容全部复制,然后删除,再新建一个application.yml文件,将复制的内容拷贝进去再运行项目就不会报错了。

四、总结:

这个问题,在一般成熟的项目里面是不会出现的,他一般出现在新建的项目上面,因为一般新建的项目有些配置不够完善,这一块是需要注意的地方。

到此这篇关于SpringBoot启动java.nio.charset.MalformedInputException: Input length = 1报错的解决方案的文章就介绍到这了,更多相关java.nio.charset.MalformedInputException内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 调整格式日志输出

    Java 调整格式日志输出

    本文主要介绍Java 的日志输出格式,在开发java的时候会经常看日志进行调试或者查看错误,这里给大家介绍日志输出调整格式,以便大家看日志的时候更加方便,
    2016-07-07
  • Java方法及数组相关原理解析

    Java方法及数组相关原理解析

    这篇文章主要介绍了Java方法及数组相关原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Java MyBatis之Mapper代理详解

    Java MyBatis之Mapper代理详解

    这篇文章主要介绍了Java web中MyBatis的mapper代理,文中有详细的代码示例,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2023-04-04
  • Java工厂模式的使用细则介绍

    Java工厂模式的使用细则介绍

    工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数来制造你需要的对象
    2023-02-02
  • Spring注解驱动之AOP功能测试

    Spring注解驱动之AOP功能测试

    这篇文章主要介绍了Spring注解驱动之AOP功能测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • springboot的application.yml配置port不生效的解决方案

    springboot的application.yml配置port不生效的解决方案

    这篇文章主要介绍了springboot的application.yml配置port不生效的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Mybatis分页插件PageHelper配置及使用方法详解

    Mybatis分页插件PageHelper配置及使用方法详解

    这篇文章主要介绍了Mybatis分页插件PageHelper配置及使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • java设计模式学习之工厂方法模式

    java设计模式学习之工厂方法模式

    这篇文章主要介绍了java设计模式学习之工厂方法模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 使用sharding-jdbc实现水平分库+水平分表的示例代码

    使用sharding-jdbc实现水平分库+水平分表的示例代码

    本文主要介绍了使用sharding-jdbc实现水平分库+水平分表,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 解析spring-boot-starter-parent简介

    解析spring-boot-starter-parent简介

    本文通过代码的形式给大家介绍了spring-boot-starter-parent的基础知识,需要的朋友可以参考下
    2018-09-09

最新评论