java 的 System.getenv() 和System.getProperty()

发布时间:2026/9/21 8:43:33

java 的 System.getenv() 和System.getProperty() 在 Java 中System.getenv()和System.getProperty()是用于获取系统信息的两个常用方法但它们获取的信息来源、用途和作用范围有着本质的区别。1. 核心区别概述System.getenv()用于获取操作系统级别的环境变量Environment Variables。这些变量由操作系统设置对当前进程及其所有子进程可见。例如PATH、JAVA_HOME、HOME等。System.getProperty()用于获取Java 虚拟机JVM级别的系统属性System Properties。这些属性由 JVM 在启动时读取或设置主要用于描述 Java 运行时环境、操作系统信息或应用程序的自定义配置。例如os.name、java.version、user.dir等。2. 详细对比特性System.getenv()System.getProperty()信息来源操作系统OSJava 虚拟机JVM或应用程序作用范围全局对当前进程及所有子进程可见局部仅对当前 JVM 实例可见修改方式需在操作系统层面修改如修改注册表、环境变量配置可通过System.setProperty()在代码中修改或通过-D参数在启动时传入大小写敏感性取决于操作系统如 Windows 不敏感Unix/Linux 敏感键名始终大小写敏感典型用途外部系统接口要求如PATH、跨进程配置传递获取运行环境信息、应用自定义配置、跨平台开发适配3. 使用示例使用System.getenv()获取环境变量// 获取特定的环境变量如 JAVA_HOME String javaHome System.getenv(JAVA_HOME); // 获取所有环境变量返回一个不可修改的 Map MapString, String allEnv System.getenv(); for (Map.EntryString, String entry : allEnv.entrySet()) { System.out.println(entry.getKey() entry.getValue()); }使用System.getProperty()获取系统属性// 获取 JVM 或 OS 相关的内置属性 String osName System.getProperty(os.name); String javaVersion System.getProperty(java.version); String userDir System.getProperty(user.dir); // 获取自定义属性带默认值防止返回 null String appName System.getProperty(app.name, DefaultApp);4. 开发建议优先使用System.getProperty()官方建议尽可能使用系统属性因为它们的作用范围仅限于当前 Java 进程不容易产生意想不到的副作用。何时使用System.getenv()当需要全局效果如影响所有子进程或者外部系统接口强制要求使用环境变量如PATH时才应使用System.getenv()跨平台兼容提示获取用户主目录时推荐使用System.getProperty(user.home)而不是通过System.getenv(HOME)Linux/macOS或System.getenv(USERPROFILE)Windows因为前者更加可靠且无需处理操作系统的差异。不可混用System.getProperty()不能直接读取操作系统的环境变量除非你在启动 JVM 时通过-D参数手动将其传入。例如获取PATH必须用System.getenv(PATH)。
延伸阅读

更多相关文章

2026/9/21 8:42:05

Sunshines报错 Fatal: Unable to find display or encoder during startup.

Fatal: Unable to find display or encoder during startup.Fatal: Please ensure your manually chosen GPU and monitor are connected and powered on.问题原因:虚拟显示器的输出名称变了修改方法:把配置->Audio/Video里面的“输出名称”改成新的名…

2026/9/21 3:28:31

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/21 3:33:19

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/21 0:02:23

OpenResearch:构建可复现的开放式研究工作流

第一次看到“OpenResearch”这个名字,我脑子里冒出的不是某个具体软件,而更像一种研究方式的宣言:开放、可复现、可验证。这三件事放在一起,其实比大多数人想象中难得多。过去几年我一直在折腾自己的研究工作流,从纯纸…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码