Java丨Cmd運行Jar出現亂碼問題

今天做項目的時候遇到一個很頭疼的問題——無論在Java代碼中如何統一編碼爲UTF8,在IDE中運行是完全沒問題的,但打包成Jar通過Bash和CMD運行,都會出現中文亂碼問題。起初是覺得Java編譯時編碼出現了問題,但經過幾小時的排查,終於找到中文亂碼問題的根源——cmd/bash默認的編碼是GBK。爲了防止日後再踩坑,本文記錄問題的解決方案。

一、設定cmd的編碼爲utf-8

打開cmd,輸入以下命令

chcp 65001

這樣既可以更改cmd的編碼爲UTF-8了。

以下是常用的cmd編碼

字符編碼

對應字符

GBK(默認)

936

美國英語 

437

utf-8

65001

二、規定執行java時的編碼方式 

在cmd下,常見運行Jar包的命令如下

java -jar project.jar

但這樣可能會使得java運行時編碼不正確導致的報錯,這時候我們可以將運行Jar時,指定編碼參數

java -Dfile.encoding=utf-8 -jar project.jar

三、將以上命令打包成bat

每次啓動項目都要進行如上兩步的話,其實會非常麻煩,我們可以將以上兩部打包成bat批處理文件,具體步驟如下

3.1 在Jar的目錄下創建一個txt文件,通過記事本打開

3.2 將以上命令寫入txt文件中,保存

3.3 修改msgSystemStart.txt爲msgSystemStart.bat

3.4 運行bat文件

可以看到,項目正常啓動,並且不會出現亂碼問題;

 

通過以上步驟,基本上可以將中文亂碼問題解決。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章