java打包jar之后运行Dos显示中文乱码

项目在IDEA运行的好好的,打成jar包之后通过cmd运行,给我报了一个数组越界的异常。当时想到的是是不是配置文件有问题。打开jar查看配置文件之后发现没有问题,定位异常的那行还是发现没有问题,于是打了输出日志。终于发现了问题,原来是中文乱码的问题。bash/cmd默认编码是gbk,我的java项目的统一编码是UTF-8,所以出现乱码很正常。

1. 设定cmd的编码是UTF-8

win+r>>cmd,输入以下命令:

chcp 65001

出现如下的显示表示修改编码成功
在这里插入图片描述
以下是常用的cmd编码

字符编码对应字符
GBK(默认)936
美国英语437
-utf-8--65001-

2. 执行java命令时的编码格式

在cmd中输入java命令运行jar包

java -jar ***.jar

这样会使得java程序运行时出现因为编码不正确导致的错误,这时候使用以下命令设置jar运行时的编码格式

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

3. 建立一个省时省力的批处理文件

如果每次运行jar包的话都需要进行上面两步会比较麻烦,可以将以上两条命令打包成bat批处理文件。

  1. 在jar包的同级目录下建立一个txt文件,使用记事本打开。
    在这里插入图片描述
  2. 将上面执行的两条命令加入到该文件中。
    在这里插入图片描述
  3. 修改文件的后缀名将msgcode.txt文件名改为msgcode.bat
    在这里插入图片描述
  4. 点击msgcode.bat文件直接运行即可,可以发现已经不出现乱码了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值