org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException
阿新 • • 發佈:2022-12-06
1、問題概述
將一個 springboot 專案打成 Jar 包後,在本地使用 java -jar 命令啟動服務,服務能啟動成功,但是會有如下報錯資訊。
說明:
配置檔案為外接配置檔案,與 jar 處於同目錄下
啟動命令如下:
java -jar blade-gateway.jar --spring.config.location=application-dev.yml --server.port=80
2、問題分析
此報錯資訊指向的問題是,配置檔案 application.yml 中含有中文,而服務預設啟動的編碼格式伺服器系統相關,使用的編碼格式無法正確讀取配置檔案中的中文資訊,導致報錯。
3、解決方案
-
可以將配置檔案 application.yml 中的中文刪除,再嘗試
-
可以嘗試將檔案內容複製出來,再重新複製回去
-
可以在啟動命令中加上 編碼配置,指定編碼,修改後的啟動命令如下:
java -Dfile.encoding=utf-8 -jar blade-gateway.jar --spring.config.location=application-dev.yml --server.port=80
添加了 -Dfile.encoding=utf-8
-
如果是直接在 ide 中啟動,報錯,則也可以直接在 ide 中修改配置檔案編碼格式
以 idea 為例:
說明:以上4種方案,可以一一嘗試,並無先後順序