详解Java的启动参数-Dfile.encoding、System.getProperty(“file.encoding“)、该参数影响哪些行为
目录
一、-Dfile.encoding介绍和配置方法
1. 介绍
2. IDEA设置启动参数-Dfile.encoding的方法
2.1 普通Java项目
2.2 JavaWeb项目
二、-Dfile.encoding的作用
1. -Dfile.encoding 影响以下行为:
2. 案例演示
2.1 System.out.printxx()
2.2 字符编码函数 getBytes()
2.3 FileReader
一、-Dfile.encoding介绍和配置方法
1. 介绍
关于 Java 的启动参数 -Dfile.encoding 的作用我发现很多博客都没有讲清楚,我先做简单介绍和设置该参数的方法,后续会讲解该参数到底有什么作用
该参数与 System.getProperty("file.encoding") 相对应,如下所示
public class test {public static void main(String[] args){System.out.println("out_encoding: " + System.getProperty("file.encoding"));}
}
① IDEA 创建普通的非 JavaWeb 项目,未设置启动参数 -Dfile.encoding 时,System.getProperty("file.encoding") 默认为 UTF-8
② IDEA 创建 JavaWeb 项目,未设置启动参数 -Dfile.encoding 时,System.getProperty("file.encoding") 默认为 GBK;
如果想修改 System.getProperty("file.encoding") 的值应该怎么办呢?通过设置启动参数-Dfile.encoding 即可
2. IDEA设置启动参数-Dfile.encoding的方法
PS:普通的 Java 项目和 JavaWeb 项目设置启动参数 -Dfile.encoding 是不一样的,所以分开讲解。这里我以 2024 版的 IDEA 演示
2.1 普通Java项目
① 准备 test.java 文件以作验证:
public class test {public static void main(String[] args){System.out.println("out_encoding: " + System.getProperty("file.encoding"));}
}
这时我们还未设置 -Dfile.encoding 参数,System.getProperty("file.encoding") 输出的是 "UTF-8" ,即默认为 UTF-8 编码,如下所示:
② 点击右上角的 "Edit Configurations"
弹出一个窗口,左上角选择启动的 Java 程序 "test",然后依次点击 "Modify options --> Add VM options",如下图所示
此番操作后,面板就会多出一个可输入 VM 参数的框,如下图所示:
③ 在输入框输入 -Dfile.encoding = 编码方式 即可,例如 -Dfile.encoding = UTF-8 或者 -Dfile.encoding = GBK 。如下图所示:
④ 重新执行 test.java 文件以作验证:
可以看到,System.getProperty("file.encoding") 输出