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

Java System.getenv 和 System.getProperty 区别


在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~

  • 专栏导航

    • Python系列: Python面试题合集,剑指大厂
    • Git系列: Git操作技巧
    • GO系列: 记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列: 详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列: 总结好用的命令,高效开发
    • 算法与数据结构系列: 总结数据结构和算法,不同类型针对性训练,提升编程思维

    非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

    💖The Start💖点点关注,收藏不迷路💖

    📒文章目录

        • System.getenv()
          • 示例
          • 特点
        • System.getProperty()
          • 示例
          • 特点
        • 比较
        • 选择使用哪一个
        • 一些注意事项


System.getenv()System.getProperty() 是Java中两种不同的方法,用于获取不同类型的环境信息。它们有各自的用途和适用场景。

System.getenv()

System.getenv() 用于获取操作系统的环境变量。环境变量是通过操作系统设置的,它们可以影响应用程序的行为,但它们在Java应用程序启动之后通常不能改变。

示例
public class Main {
    public static void main(String[] args) {
        // 获取环境变量的值
        String path = System.getenv("PATH");
        System.out.println("PATH: " + path);

        String javaHome = System.getenv("JAVA_HOME");
        System.out.println("JAVA_HOME: " + javaHome);
    }
}
特点
  1. 作用范围:环境变量是全局的,通常会在操作系统级别设置,并且可以影响多个进程。
  2. 不可变性:在Java程序运行时,几乎不可能动态改变环境变量的值。
  3. 典型用例:获取系统路径、配置信息、操作系统相关信息等。

System.getProperty()

System.getProperty() 用于获取Java系统属性。系统属性是由Java虚拟机(JVM)维护的,并且通常可以在程序启动时或者运行时通过代码设置。

示例
public class Main {
    public static void main(String[] args) {
        // 获取Java系统属性的值
        String userDir = System.getProperty("user.dir");
        System.out.println("User Directory: " + userDir);

        String javaVersion = System.getProperty("java.version");
        System.out.println("Java Version: " + javaVersion);

        // 设置和获取自定义属性
        System.setProperty("myProperty", "myValue");
        String myProperty = System.getProperty("myProperty");
        System.out.println("My Property: " + myProperty);
    }
}
特点
  1. 作用范围:系统属性是JVM级别的,通常会在JVM启动时设置,并且只影响当前JVM实例。
  2. 可变性:可以在运行时通过System.setProperty()动态改变系统属性。
  3. 典型用例:获取JVM相关信息(例如Java版本、用户目录),配置应用程序行为等。

比较

特性System.getenv()System.getProperty()
作用范围操作系统环境变量,全局作用JVM系统属性,作用于当前JVM实例
典型用例获取操作系统路径、环境配置信息获取JVM相关信息、应用程序配置
可变性运行时几乎不可变可以在运行时动态设置和改变
示例变量PATH, JAVA_HOME, HOSTNAME, COMPUTERNAMEjava.version, user.dir, os.name, 自定义属性

选择使用哪一个

  • 使用 System.getenv() 当你需要访问操作系统级别的环境变量时,例如获取系统路径、用户信息等。
  • 使用 System.getProperty() 当你需要获取或者设置JVM相关的属性时,例如用户目录、Java版本,或者你需要在运行时配置某些属性。

一些注意事项

  • 安全性:访问系统属性和环境变量需要适当的权限。在受限的执行环境(例如Java沙箱)中,这些操作可能会被禁止。
  • 跨平台:某些环境变量和系统属性可能在不同操作系统上有所不同。所以在编写跨平台代码时需要特别注意。

通过理解 System.getenv()System.getProperty() 的区别和用途,你可以更有效地使用它们来获取和操作环境和系统属性信息。


🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

http://www.kler.cn/a/299893.html

相关文章:

  • 第17篇:python进阶:详解数据分析与处理
  • 【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构
  • Kubectl 与 Helm 详解
  • Linux 内核中的高效并发处理:深入理解 hlist_add_head_rcu 与 NAPI 接口
  • Python网络自动化运维---用户交互模块
  • 总线、UART、IIC、SPI
  • DAY74
  • 【笔记】扩散模型(七):Latent Diffusion Models(Stable Diffusion)论文解读与代码实现
  • Flutter 中的低功耗蓝牙概述
  • 连锁管理系统如何兼批发和零售 连锁收银系统如何配合做好财务
  • C++之函数的分文件编写
  • ToDesk远程连接Ubuntu 2022.04,鼠标动不了,Windows自带的远程桌面连接也连不上,TightVNC Viewer也连不上的解决办法
  • vc-align源码分析 -- ant-design-vue系列
  • transform: rotate 旋转中心在左上角
  • 网络层_计算机网络
  • 智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验
  • 如何选择合适的加密软件?加密软件有哪些用途呢?
  • 心脑血管科黄力主任:血栓是如何悄然“养”大的?医生警示七大高危群体!
  • OPENAIGC开发者大赛高校组银奖 | GOIS——面向地质报告的多场景办公智能助手
  • Linux下载新版火狐浏览器,替换默认火狐浏览器,保留桌面任务栏图标快捷方式
  • 操作系统安全保护
  • 贪心+滑窗+递推,LeetCode 2555. 两个线段获得的最多奖品
  • adb的安装和使用 以及安装Frida 16.0.10+雷电模拟器
  • QT设置闹钟超时播报
  • B站宋红康JAVA基础视频教程之Chapter13(泛型)
  • Inspector里面可以编辑的变量相关