首页 > 其他分享 >system.getproperty值从哪里来的

system.getproperty值从哪里来的

时间:2024-07-25 20:10:25浏览次数:17  
标签:getproperty getProperty 系统 System system 哪里 JVM Java 属性

system.getproperty值从哪里来的

在Java中,System.getProperty(String key) 方法用于获取系统属性的值。这些系统属性来源于多个地方,但主要可以分为以下几类:

  1. JVM启动参数
    当JVM启动时,可以通过-D参数来设置系统属性。例如,java -DmyProperty=myValue MyApp 会在MyApp中设置一个名为myProperty的系统属性,其值为myValue

  2. JVM默认属性
    JVM本身定义了一些默认的系统属性,如java.version(Java版本)、os.name(操作系统名称)、user.dir(用户当前工作目录)等。

  3. 环境变量
    虽然System.getProperty()方法不直接读取环境变量,但某些系统属性可能会基于环境变量的值进行初始化。例如,user.home属性通常会被设置为当前用户的家目录,这个值通常来自于环境变量。

  4. 安全管理器
    在某些情况下,安全管理器可能会覆盖或修改系统属性的值。这允许应用程序或系统管理员在运行时控制对系统属性的访问。

  5. Java代码
    通过System.setProperty(String key, String value)方法,Java代码也可以在运行时设置系统属性的值。但请注意,一旦系统属性被设置,通常就不能被更改(除非再次调用System.setProperty()方法或安全管理器允许这样做)。

  6. 外部配置文件或资源
    虽然System.getProperty()方法本身不直接从外部配置文件或资源中读取值,但应用程序可能会使用这种方法来读取存储在配置文件或资源中的属性。例如,一个应用程序可能会从配置文件中读取数据库连接字符串,并将其设置为系统属性,以便在整个应用程序中访问。

  7. JNDI(Java Naming and Directory Interface)
    在某些企业环境中,系统属性可能通过JNDI查找进行设置。JNDI是一种Java API,用于将名称与对象进行关联,使得开发人员可以通过名称查找对象。虽然这不是System.getProperty()的直接来源,但它是设置和获取系统属性值的另一种机制。

总之,System.getProperty()方法获取的系统属性值主要来源于JVM启动参数、JVM默认属性以及可能的运行时设置(如通过System.setProperty()方法或安全管理器)。

标签:getproperty,getProperty,系统,System,system,哪里,JVM,Java,属性
From: https://www.cnblogs.com/sunny3158/p/18324033

相关文章

  • Unity ECS System在什么时候更新?如何自定义这个更新的时机?
    在什么时候更新?在其他用户代码都执行完之后。去Netcode的ClientServerBootstrap里可以找到CreateLocalWorld函数,里面有类似这样的代码:publicstaticWorldCreateLocalWorld(stringdefaultWorldName="DefaultWorld"){varworld=newWorld(defaultWorldName,WorldF......
  • systemd service 配置 ulimit 限制
      在bash中,有个ulimit命令,提供了对shell及该shell启动的进程的可用资源控制。主要包括打开文件描述符数量、用户的最大进程数量、coredump文件的大小等。在CentOS5/6等版本中,资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者......
  • 使用 os.system() 命令打开 Streamlit
    我正在工作中在Streamlit中创建一个应用程序。因为大多数人对编程一无所知(包括如何启动Streamlit),所以我想用启动Streamlit的代码创建一个可执行文件。这是我的代码:importoscmd='streamlitrunmain.py'os.system(cmd)接下来我使用pyinstaller来更改它到......
  • Android 13 大屏显示时关于SystemUI和Launcher3问题
    当系统运行在大屏上时,原来显示SystemUI导航栏的位置会变成Launcher3的任务栏,然后导航栏的3个按键显示靠右下角显示1.先看SystemUI的导航栏为什么会消失,移动/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.javapublicvoidcreateNavigationBar......
  • 镇江四六级代报名还有名额吗?2024下半年江苏四六级去哪里考试?
    大家好,我是学府教育做四六级代报名的老师。在查完了英语四六级的成绩以后,陆陆续续了很多同学来咨询我,毕业生能不能代报名四六级?我跟大家讲,毕业生代报名四六级就和在校生考试是一模一样的。很多在江苏或者是别的地方的同学,会问我去哪里考试比较方便?那么一直以来呢,江苏的名额是......
  • 可视化自定义表单开源的突出优势表现在哪里?
    随着数字化发展潮流的袭来,降本、增效、提质的办公效率得到了很多企业朋友的喜爱与支持。那么,该如何实现这一目标?又如何帮助企业降低开发成本、提升办公效率?想要了解这些详细信息,可以关注低代码技术平台、可视化自定义表单开源的相关信息。流辰信息也将持续做好自主研发创新,为行业......
  • Robot Operating System——借用内存型消息
    大纲功能和工作原理源码分析POD特点POD类型的优点非POD特点生成并发布“借用内存型消息”POD类型非POD类型在ROS2中,"loanedmessage"是一种消息传递机制,用于在发布者(publisher)和订阅者(subscriber)之间传递数据。它是一种高效的消息传递方式,可以避免不必要的数据......
  • 在实际应用中,systemverilog相比vefilog2000有哪些重大的提升
    SystemVerilog相较于Verilog-2000有多项重大提升,这些提升使得SystemVerilog成为更强大的硬件描述和验证语言。以下是一些关键的改进:数据类型扩展:SystemVerilog引入了 logic 数据类型,可以替代Verilog-2000中的 wire 和 reg 类型,提供更灵活的使用方式。支持更广......
  • thinkphp数据库配置文件在哪里?怎么修改?
    thinkphp数据库配置文件tp3.2是config.phptp5是database.php<?phpreturnarray('DB_TYPE'=>'mysql',//数据库类型'DB_HOST'=>'127.0.0.1',//数据库服务器地址'DB_NAME'=>'thinkphp',//数据库名称......
  • Distilling System 2 into System 1
    本文是LLM系列文章,针对《DistillingSystem2intoSystem1》的翻译。将系统2蒸馏成系统1摘要1引言2相关工作3将系统2蒸馏到系统14实验5结论6局限性摘要大型语言模型(LLM)可以在推理过程中花费额外的计算来生成中间思想,这有助于产生更好的最终响应。自......