JDK编译时出现乱码问题(以JDK8(1.8)和JDK17为例)
先看代码,写个最简单的HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
System.out.println("中国人民");
System.out.println(System.getProperty("java.version"));//jdk版本号
System.out.println(System.getProperty("java.home"));//jdk所在目录
System.out.println(System.getProperty("os.name"));//所用系统版本号
System.out.println(System.getProperty("user.dir"));//当前文件所在地址
}
}
1.jdk17乱码问题解决方案
因为java17不再需要编译,一般我们直接输入:java 文件名.java直接运行即可,但如果含有中文,便会出现乱码问题,以HelloWorld文件为例吧,我们只需在文件名前面加上-Dfile.encoding=utf-8就行
java -Dfile.encoding=utf-8 HelloWorld.java
2.jdk1.8乱码问题解决方案
jdk1.8不能直接运行,需要先编译后运行,如果有中文,会出现乱码,编译不通过,只需编译时在文件名.java后空格加上-encoding utf-8即可,运行时不要加后缀名(.java .class都不要加)
java HelloWorld -encoding utf-8 //编译 java HelloWorld //执行
