改jdk版本后,编译运行Java文件出现中文乱码(1.4)

        配置jdk版本后,出现中文代码识别不出来,原因应该是编写的代码为UTF-8的形式,然后cmd下的Dos命令行是,活动代码页: 936。

        出现下面这个错误的原因是因为jdk内部使用的是UTF-8,而windows中文操作系统默认使用的GBK字符编码。编码不一致时,java无法正常解析文本中的中文字符。

成功的方法:在系统变量里,创建环境变量:

变量名: JAVA_TOOL_OPTIONS, 变量值:-Dfile.encoding=UTF-8

这样在Dos命令行里就能识别并编译,不会出现中文乱码。

javac 文件名.java;         java 类名;

下面的内容是我的解决问题的一些失败例子,大家解决完问题,没有兴趣的话就不用继续看了:

        一开始我是jdk1.8改成21的版本,当时是用的UltraEidt记事本写了一段时间的Java基础代码,出现问题,最后改设置改编码都没有成功,然后换成了新安的Subline记事本正常运行;但是后面又改环境变量成了jdk17,出现同样的问题。

临时的编译方法:javac -encoding UTF-8 Hello.java        (但是只在当前命令行里有效)

两个失败的方法,一个是改系统的时间和语言,语言区域,管理语言设置,更改系统区域设置,勾选Beta版选项,重启后一直出现错误弹窗。猜测是因为系统的用户名是中文导致的,被迫把勾选的改回来。大家没事别去尝试。

另一个是改注册表,新建了Autorun的值chcp 65001;发现没什么用又给删了。

然后在命令行里javac -encoding UTF-8 HelloWorld.java,只能临时解决,看了这个网页也看不懂:JVM(TM) 工具界面 1.2.1

最后加了新的系统变量:变量名: JAVA_TOOL_OPTIONS, 变量值:-Dfile.encoding=UTF-8

这才算是解决了这个小问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值