目录
一、问题重现
二、解决思路
三、最终解决
一、问题重现
今天本地idea在多模块Maven:package时出现java.nio.charset.MalformedInputException: Input length = 1异常,Maven:clean正常。
二、解决思路
起初百度说是File Encodings设置成UTF-8后,启动会正常。
设置完毕后,重新package工程还是报同样的错误信息,细细观察后发现,因为项目使用了nacos管理、读取配置文件,而在配置文件中“# mybatis-plus****”后面是中文注释,但是现在乱码了,所以会不会是package过程中解析远程nacos中的配置文件时出现了问题,那么如果项目没有使用nacos,上述File Encodings方法修改后是不是会启动成功(未尝试)。
结合网上说大概率是yml中中文备注的原因,所以先将nacos配置文件的中文注释全都删除 (后面有更简便方法,切勿着急删除配置中文注释!!!)。
再次package项目工程时成功了。
文章来源:https://www.toymoban.com/news/detail-791110.html
三、最终解决
配置文件增加注释就是方便咱们理解配置作用,现在给全删了肯定不便以后阅读,所以咱们也可以在父类pom.xml文件中增加配置<argLine>-Dfile.encoding=UTF-8</argLine>,启动项目后也能够正常打包!文章来源地址https://www.toymoban.com/news/detail-791110.html
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<!-- 定义文件编码,否则nacos配置文件中存在中文会报错 -->
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
</plugins>
</build>
到了这里,关于解决package:java.nio.charset.MalformedInputException: Input length = 1异常的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!