项目在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批处理文件。
- 在jar包的同级目录下建立一个txt文件,使用记事本打开。

- 将上面执行的两条命令加入到该文件中。

- 修改文件的后缀名将msgcode.txt文件名改为msgcode.bat

- 点击msgcode.bat文件直接运行即可,可以发现已经不出现乱码了。
本文介绍如何解决在CMD环境下运行Java JAR包时遇到的中文乱码问题,通过设置CMD编码为UTF-8及指定JAR运行编码格式,最后创建批处理文件简化操作流程。
6581

被折叠的 条评论
为什么被折叠?



