明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

windows 环境下cmd运行jar包中文乱码及停止

Posted on 2023-11-01 00:01  且行且思  阅读(1889)  评论(0编辑  收藏  举报

今天做项目的时候遇到一个很头疼的问题——无论在Java代码中如何统一编码为UTF8,在IDE中运行是完全没问题的,但打包成Jar通过Bash和CMD运行,都会出现中文乱码问题。起初是觉得Java编译时编码出现了问题,但经过几小时的排查,终于找到中文乱码问题的根源——cmd/bash默认的编码是GBK。为了防止日后再踩坑,本文记录问题的解决方案。

 

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

打开cmd,输入以下命令

chcp 65001

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


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

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

java -jar project.jar

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

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

可以看到,项目正常启动,并且不会出现乱码问题;

通过以上步骤,基本上可以将中文乱码问题解决。

------------------------------------------------------------------------------------

 

二、windows 下java-jar启动的jar包怎么停

1 用管理员打开cmd命令窗口
2 输入:netstat -ano | findstr 端口号9233
3 根pid删除命令
taskkill /t /f /pid 2136