当前位置: 首页 > ds >正文

详解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") 输出

http://www.xdnf.cn/news/14446.html

相关文章:

  • 如何监控Seata的事务执行状态?
  • 【python】pathlib用法
  • 3.1.2_栈的顺序存储实现
  • JavaScript 将一个带K-V特征的JSON数组转换为JSON对象
  • Python实例题:Python计算偏微分方程
  • c++算法学习7——倍增算法
  • 山东大学软件学院创新项目实训开发日志——第十七周
  • RAG 系统评估与优化指南:从 RAGAS 到 ARES 的实战应用
  • Flask 动态模块注册
  • Hoppscotch
  • Makefile关键语法示例
  • 三维重建 —— 5. 双目立体视觉
  • CNN中的感受野
  • linux 常用工具的静态编译之一
  • Python打卡训练营-Day31-文件的规范拆分和写法
  • Vue2 与 Vue3 中环境变量配置的差异详解。
  • 电力系统时间同步检测技术
  • (下)通用智能体与机器人Transformer:Gato和RT-1技术解析及与LLM Transformer的异同
  • 【Golang面试题】什么是 sync.Once
  • 安全生产台账系统
  • 【无标题】二维势能塌陷的拓扑色动力学:数学物理框架与引力本质探索
  • 华为OD机试_2025 B卷_数组排列求和(Python,100分)(附详细解题思路)
  • vim编辑常用命令
  • JAVA理论第十七章-RocketMQKafaka
  • 【Linux教程】Linux 生存指南:掌握常用命令,避开致命误操作
  • 基于可靠消息确保分布式事务的最终一致性:以电商系统中订单服务的新建订单为例
  • C# 使用 TreeView 实践 WinRiver II 的测量管理功能
  • 篇章六 论坛系统——业务开发——实现业务功能
  • Java 与 MySQL 性能优化:Linux服务器上MySQL性能指标解读与监控方法
  • 修改Typora快捷键