记录java乱码影响范围及问题原因和解决方案

最近一段时间启动之前一直常用的老版本开发软件Ireport,这个程序停更很久了,只不过公司老系统有一些还在使用,接手了就一直安装了拿来开发。

这个软件只能使用1.7以下的java版本才能进行开发,而且启动是执行了jar文件的,某一天突然没有办法打开,由于闪退且没有任何报错信息也没有本地日志文件,所以一直查不到原因,百度和科学上网均无法解决,所以不了了之。

知道某天反编译代码使用jd-gui,突然发现也打不开了,本身这东西只是个jar文件,按理说不应该随意出现突然打不开的情况的,尝试了多个jar后缀文件执行,发现无任何报错但就是打不开。开始怀疑java出现问题,然后cmd执行java、javac执行也没用报错,但出现乱码情况,一开始没有太在意,后面通过java执行所有java文件均乱码。

然后排查最近几天做的系统级别操作,最终想起来为了打某个游戏,曾经将系统区域时间修改为beta版,尝试改回,重启,错误修正完成。

错误修正位置:控制面板-区域-更改日期、时间或数字格式-管理-更改系统区域设置-beta取消勾选

目前问题虽然已经解决,但造成修改区域时间导致无法启动的原因还只是猜测,大概率是因为jar内部有一些获取时间相关的代码,而beta版后提示由unicode utf-8提供全球版支持,可能强制取utf-8格式字符的时间段,导致windows中文环境没有专门设置字符集的情况下,控制台默认取gbk执行java文件造成时间获取异常,还没进入java文件执行阶段就停掉了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值