今天在做项目时遇到一个非常头疼的问题——我已经在Java代码中将编码统一为UTF8,但是当我将其打包成Jar文件后,通过Bash和CMD运行时,却出现了中文乱码问题。这让我感到很困惑,因为在IDE中运行时完全没有问题。类似如下图:

起初是觉得Java编译时编码出现了问题,但经过几小时的排查,终于找到中文乱码问题的根源——cmd/bash默认的编码是GBK。为了防止日后再踩坑,本文记录问题的解决方案。

一、设定cmd的编码为utf-8

打开cmd,输入以下命令

chcp 65001

这样既可以更改cmd的编码为UTF-8了。

ps:以下是常用的cmd编码

二、规定执行java时的编码方式

在cmd下,常见运行Jar包的命令如下

java -jar myproject.jar

但这样可能会使得java运行时编码不正确导致的报错,这时候我们可以将运行Jar时,指定编码参数

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

三、将以上命令打包成bat

每次启动项目都要进行如上两步的话,其实会非常麻烦,我们可以将以上两部打包成bat批处理文件,具体步骤如下

3.1 在Jar的目录下创建一个txt文件

比如我们这里用记事本新建一个名为runMyProject.txt

3.2 文本内容修改如下

chcp 65001
java -Dfile.encoding=utf-8 -jar myproject.jar

3.3 修改文件后缀为.bat

最后我们将.txt文件后缀修改为.bat文件即可

以后我们只需要双击运行bat文件即可运行我们的java项目,而且还不会出现中文乱码的情况。

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/5913.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
  • 版权声明

    本站的文章和资源无特殊说明均为站长
    原创,按照 CC BY -NC -SA 3.0 CN
    协议发布和共享,转载或引用本站文章
    应遵循相同协议。如果有侵犯版权的资
    源请尽快联系站长,我们会在24h内删
    除有争议的资源。
  • 本站目标

    我们的目标是:

    →Java学习更简单,培训不遇坑
    → Java毕设更容易,答辩一次过
    → Java面试更轻松,高薪工作更愉悦
  • 本站宗旨

    潘子夜个人博客,专注于Java学习
    Java培训、Java毕设、与Java面试题
    等方向的整理与分享,帮助同学们轻
    松学技术,顺利毕业,找到一个满意
    的工作。
  •