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如何跳出当前多重循环你知道吗

    Java如何跳出当前多重循环你知道吗

    这篇文章主要为大家介绍了Java跳出当前多重循环,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Spring AOP 对象内部方法间的嵌套调用方式

    Spring AOP 对象内部方法间的嵌套调用方式

    这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • SpringBoot整合Mybatis-plus实现多级评论功能

    SpringBoot整合Mybatis-plus实现多级评论功能

    本文介绍了如何使用SpringBoot整合Mybatis-plus实现多级评论功能,同时提供了数据库的设计和详细的后端代码,前端界面使用的Vue2,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-05-05
  • 详谈Spring对IOC的理解(推荐篇)

    详谈Spring对IOC的理解(推荐篇)

    下面小编就为大家带来一篇详谈Spring对IOC的理解(推荐篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Maven依赖爆红的几种解决思路

    Maven依赖爆红的几种解决思路

    本文介绍了多种解决Maven依赖爆红的方法,包括删除.lastupdate文件、更改镜像设置、配置私服、删除错误依赖、手动修改依赖和检查pom文件错误等,通过这些方法可以有效解决Maven项目中遇到的依赖问题,感兴趣的可以了解一下
    2024-10-10
  • java1.5中访问环境变量

    java1.5中访问环境变量

    这篇文章主要介绍了如何在java1.5中访问环境变量,使用System.getenv()可以访问环境变量
    2014-01-01
  • mybatis时间范围查询代码示例

    mybatis时间范围查询代码示例

    这篇文章主要给大家介绍了关于mybatis时间范围查询的相关资料,在项⽬中避免不了要⽤到时间范围查询,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • SpringBoot启动security后如何关闭弹出的/login页面

    SpringBoot启动security后如何关闭弹出的/login页面

    这篇文章主要介绍了SpringBoot启动security后如何关闭弹出的login页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java实现samza转换成flink

    Java实现samza转换成flink

    将Apache Samza作业迁移到Apache Flink作业是一个复杂的任务,因为这两个流处理框架有不同的API和架构,本文我们就来看看如何使用Java实现samza转换成flink吧
    2024-11-11
  • MybatisPlus,无XML分分钟实现CRUD操作

    MybatisPlus,无XML分分钟实现CRUD操作

    这篇文章主要介绍了MybatisPlus,无XML分分钟实现CRUD操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论