引言:Java程序运行、程序运行经常看到博客提示设置JVM参数-Dfile.encoding=utf-8,但是到底它是设置什么参数呢?为我们做了哪些事情呢?拨开云雾且看下文。
一、程序运行源代码历经处理阶段
一份代码到运行得到正确输出,经过步骤:
Java源代码----Javac编译成class字节码文件----Java虚拟机JVM加载运行---操作系统----显示设备。
Java源码---字节码:调用jdk的javac命令执行编译,javac默认采用系统字符集。通常我们会设置文件编码UTF-8。使用命令编译也可以加上-encoding UTF-8;
System.getProperty("file.encoding") //可以获取当前系统使用的编码字符集
Java字节码---虚拟机---操作系统:虚拟机启动的时候以什么字符集编码来解析我们的class字节码文件呢?这时候我们就通常会设置 -Dfile.encoding=utf-8. Dfile=decode file. 这里也就解释了设置这个VM参数的意义了。
操作系统---显示设备:针对编码阶段出现的中文,在这一步骤就需要操作系统安装中文字体以支持中文。
so,Do i explain it clearly to you?Ths for listening!
完结!