Java之System.getProperty()的作用及使用说明

 更新时间:2023年04月04日 10:32:23   作者:王坦.  
这篇文章主要介绍了Java之System.getProperty()的作用及使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

System.getProperty()的作用及使用

最近在看一些代码时,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等

System可以有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法System.getProperties()可以确定当前的系统属性,返回值是一个Properties;

  • System.load(String filename)等同于:System.getProperties().load(String filename)它们的作用是可以从作为动态库的本地文件系统中以指定的文件名加载代码文件。
  • System.setProperties(Properties propes)将系统属性设置为Properties参数;
  • System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):设置指定键指示的系统属性
static void**setProperties**(Properties props) 将系统属性设置为 Properties 参数。
static String**setProperty**(String key, String value) 设置指定键指示的系统属性。
static Properties**getProperties**() 确定当前的系统属性。
static String**getProperty**(String key) 获取指定键指示的系统属性。
static String**getProperty**(String key, String def) 获取用指定键描述的系统属性。

setProperties

public static void setProperties(Properties props)

将系统属性设置为 Properties

首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法。这可能导致一个安全性异常。

参数是 getProperty(String) 方法使用的当前系统属性的集合。如果参数为 null,则忽略当前系统属性的集合。

参数: - 新的系统属性。SecurityException``checkPropertiesAccess另请参见:

public static Properties getProperties()

确定当前的系统属性。

首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法。这可能导致一个安全性异常。

getProperty(String) 方法使用的当前系统属性集合作为 Properties 对象返回。如果没有当前系统属性集合,则先创建并初始化一个系统属性集合。

这个系统属性集合总是包含以下键的值:

键相关值的描述

java.versionJava 运行时环境版本
java.vendorJava 运行时环境供应商
java.vendor.urlJava 供应商的 URL
java.homeJava 安装目录
java.vm.specification.versionJava 虚拟机规范版本
java.vm.specification.vendorJava 虚拟机规范供应商
java.vm.specification.nameJava 虚拟机规范名称
java.vm.versionJava 虚拟机实现版本
java.vm.vendorJava 虚拟机实现供应商
java.vm.nameJava 虚拟机实现名称
java.specification.versionJava 运行时环境规范版本
java.specification.vendorJava 运行时环境规范供应商
java.specification.nameJava 运行时环境规范名称
java.class.versionJava 类格式版本号
java.class.pathJava 类路径
java.library.path加载库时搜索的路径列表
java.io.tmpdir默认的临时文件路径
java.compiler要使用的 JIT 编译器的名称
java.ext.dirs一个或多个扩展目录的路径
os.name操作系统的名称
os.arch操作系统的架构
os.version操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在 UNIX 系统中是“:”)
line.separator行分隔符(在 UNIX 系统中是“/n”)
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

系统属性值中的多个路径是用平台的路径分隔符分隔的。

注意,即使安全管理器不允许执行 getProperties 操作,它可能也会选择允许执行 getProperty(String) 操作。

**返回:**抛出: - 如果安全管理器存在并且其 方法不允许访问系统属性。setProperties(java.util.Properties)SecurityExceptionSecurityManager.checkPropertiesAccess()Properties

Java代码

public class TestSystemGetSet {  
    static{  
        System.setProperty("DB", "mysql");//可以作为全局变量,在任何地方使用  
    }  
    public static void main(String[] args) {  
        System.out.println(System.getProperty("os.version"));  
        System.out.println(System.getProperty("java.library.path"));  
        System.out.println(System.getProperty("DB"));  
    }  
}  

输出结果:

10.0
C:\Java\jdk1.8.0_121\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Java/jre8/bin/server;C:/Java/jre8/bin;C:/Java/jre8/lib/amd64;C:\Program Files\IBM\WebSphere MQ\java\lib;C:\Program Files\IBM\WebSphere MQ\java\lib64;E:\app\Administrator\product\11.2.0\dbhome_2\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\MySQL\MySQL Server 5.1\bin;D:/maven\bin;C:\Program Files (x86)\Rational\common;C:\Program Files\IBM\WebSphere MQ\bin64;C:\Program Files\IBM\WebSphere MQ\bin;C:\Program Files\IBM\WebSphere MQ\tools\c\samples\bin;C:\Java\jdk1.8.0_121\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;D:\maven\bin;E:\soft\apache-ant-1.10.1\bin;D:\erl9.2\bin;;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\tool\eclipse;;.
mysql

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解析Java中的static关键字

    解析Java中的static关键字

    static是方便在没有创建对象的情况下进行调用(方法/变量)。显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能
    2021-06-06
  • Java实现直接插入排序和折半插入排序算法示例

    Java实现直接插入排序和折半插入排序算法示例

    这篇文章主要介绍了Java实现直接插入排序和折半插入排序算法示例,文中对算法的思想和时间复杂度都有简单的讲解,需要的朋友可以参考下
    2016-04-04
  • Java实现随机抽奖的三种方法

    Java实现随机抽奖的三种方法

    在Java中实现随机抽奖的方法,通常我们会使用java.util.Random类来生成随机数,然后基于这些随机数来选择中奖者,以下将给出几种常见的随机抽奖实现方式,需要的朋友可以参考下
    2024-09-09
  • 将Java程序的输出结果写到txt文件中的方法

    将Java程序的输出结果写到txt文件中的方法

    今天小编就为大家分享一篇将Java程序的输出结果写到txt文件中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • VSCode 配置 Spring Boot 项目开发环境的全过程

    VSCode 配置 Spring Boot 项目开发环境的全过程

    两三年前曾经试过配置Java环境, 存在不少问题作罢. 最近搜了下相关的文章, 感觉VSCode对Java项目的支持比三年前完善了不少. 今天实际配置了一下环境, 把自己常用的功能过了一遍, 基本能跑通开发流程, 做个笔记,需要的朋友可以参考下
    2024-03-03
  • Java通过工厂、Map容器创建对象的方法

    Java通过工厂、Map容器创建对象的方法

    这篇文章主要介绍了Java通过工厂、Map容器创建对象的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 理解JDK动态代理为什么必须要基于接口

    理解JDK动态代理为什么必须要基于接口

    这篇文章主要介绍了理解JDK动态代理为什么必须要基于接口,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • java单例模式实现面板切换

    java单例模式实现面板切换

    这篇文章主要为大家详细介绍了java单例模式实现面板切换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Druid(新版starter)在SpringBoot下的使用教程

    Druid(新版starter)在SpringBoot下的使用教程

    Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,DruidDataSource支持的数据库,这篇文章主要介绍了Druid(新版starter)在SpringBoot下的使用,需要的朋友可以参考下
    2023-05-05
  • Java基础之Thymeleaf的简单使用

    Java基础之Thymeleaf的简单使用

    这篇文章主要介绍了Java基础之Thymeleaf的简单使用,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论