多语言展示
当前在线:1893今日阅读:176今日分享:34

cmd命令窗口执行jdk的javac乱码怎么办?

用windows学习java编程的小伙伴们想必都知道jdk,其中学习java最原始而且精简的方式就是用notepadd++或者其他文本编辑器编辑代码后,放到cmd下用jdk的javac和java命令进行编译执行。然而你可能会遇到这样的问题————中文乱码。以下基于中文版jdk进行问题解决方案讲解,英文版一样适用
工具/原料
1

windows电脑一个

2

已经配置好的jdk

方法/步骤
1

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

2

1.确定你保存文本时采用的是UTF-8编码,例如notepad++编辑器。可以这样查看

3

2.右键“我的电脑”-->点击“属性”-->点击”高级系统设置”-->“点击环境变量”,在系统变量中新增一个环境变量名JAVA_TOOL_OPTIONS,然后填值,中文版jdk设置其值为-Dfile.encoding=UTF-8 -Duser.language=en,英文版jdk设置其值为-Dfile.encoding=UTF-8。编辑完后一路确定就好了。重启cmd,执行javac你会看到如最后一幅图的样子,这样就成功了,如果不成功青检查那个步骤错了。

讲解
1

JAVA_TOOL_OPTIONS是jdk在运行前会读取的一个环境变量,里面可以指定jdk的一些选项,其中-Dfile.encoding=UTF-8是设置读取文件的编码为UTF-8。而-Duser.language=en是将jdk语言调为英文版。至于为什么中文版要调回英文版,是因为:中文版jdk在切换文件编码文utf-8号,编译java时不出错还好,以出错,错误信息的中文就会乱码,切换回英文之后就可以显示英文的错误信息了。

2

效果如图:虽然解决方案不甚完美,但是我觉得还是挺实用的。

注意事项

新手同学操作时,对于代码能复制就不手打,需要手打时注意不要写错

推荐信息