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

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

相关文章:

  • Atcoder Beginner Contest 410 题解报告
  • 生产者消费者消息流转和基本实操
  • Golang 在 Linux 平台上的并发控制
  • Vue3 + TypeScript + Element Plus 表格实例null检查方法
  • 18.vue.js的scoped样式隔离?原理和使用?(1)
  • c++总结-05-模板与泛型编程
  • 大IPD之——学习华为市场洞察,为战略找到方向(四)
  • 层压板选择、信号完整性和其他权衡
  • 日常开发工作流程梳理
  • 16 celery集成其他工具
  • 【论文解读】AgentThink:让VLM在自动驾驶中学会思考与使用工具
  • 【Python 爬虫 防盗链】
  • Java大模型开发入门 (12/15):Agent实战 - 打造能调用外部API的智能助手
  • STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读
  • LeetCode - LCR 173. 点名
  • Magentic-ui项目相关整理
  • 如何自动化测试 DependencyMatcher 规则效果(CI/CD 集成最佳实践)
  • 60天python训练计划----day52
  • Flutter 状态管理与 API 调用的完美结合:从理论到实践
  • RapidNJ软件的安装
  • 做健身类小程序的网站/西安seo公司哪家好
  • 七丽女性网站模板2016/镇江搜索优化技巧
  • 做网站费用会计科目/淘宝seo优化
  • 做网站的硬件/代刷网站推广链接免费
  • 网站设计工作室/东莞建设网
  • 杭州 电商设计网站建设/易推客app拉新平台