必威体育Betway必威体育官网
当前位置:首页 > IT技术

System.getProperty()方法获取系统变量

时间:2019-06-01 09:45:08来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

system.getproperty

  今天在阅读JDBC的DriverManager类源码时,看到了这么一句代码

system.getproperty(“jdbc.drivers”);

  getProperty()这个方法是获取指定键指示的系统属性的,也就是说上面的代码获取的是jdbc.drivers这个属性。我写了个测试测试输出,发现是null值。于是就打算看看系统属性中有没有jdbc.drivers这个值。

  查看了一下java api中的getProperty()这个方法,后通过getProperties()找到了能获取到的属性,如下图所示:

getProperties()能获取到的属性

  但是居然没有我的jdbc.drivers,于是本着负责的态度,我决定将所有的属性都输出看一看。以下是通过System.getPropertys()和System.getProperty()变量所有系统属性的方法。

    @Test
    public void test(){
        //获取所有的属性
        Properties properties = System.getProperties();
        //遍历所有的属性
        for (String key : properties.stringPropertyNames()) {
            //输出对应的键和值
            System.out.println(key + "=" + properties.getProperty(key));
        }

    }

  对应的结果如下:

java.runtime.name=Java(TM) SE Runtime environment

sun.boot.library.path=C:\javaweb\jdk1.8.0_101_64\jre\bin

java.vm.vendor=oracle Corporation

java.vendor.url=http://java.oracle.com/

path.separator=;

java.vm.name=Java HotSpot(TM) 64-Bit Server VM

file.encoding.pkg=sun.io user.script= user.country=CN

sun.java.launcher=SUN_STANDARD sun.os.patch.level=

java.vm.specification.name=Java virtual Machine Specification

user.dir=E:\7.ProjectCodeSource\jdbc

java.runtime.version=1.8.0_101-b13

java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment

java.endorsed.dirs=C:\javaweb\jdk1.8.0_101_64\jre\lib\endorsed

os.arch=AMD64 java.io.tmpdir=C:\Users\ADMini~1\APPData\local\Temp\

line.separator=

java.vm.specification.vendor=Oracle Corporation user.variant=

os.name=windows 10 sun.jnu.encoding=GBK

java.library.path=C:\javaweb\jdk1.8.0_101_64\bin;

java.specification.name=Java Platform API Specification

java.class.version=52.0

sun.management.compiler=HotSpot 64-Bit Tiered

Compilers os.version=10.0

user.home=C:\Users\Administrator

user.timezone=

java.awt.printerjob=sun.awt.windows.WPrinterJob

file.encoding=UTF-8

java.specification.version=1.8

user.name=Administrator

java.class.path=E:\7.ProjectCodeSource\jdbc\target\test-classes;

java.vm.specification.version=1.8 sun.arch.data.model=64

java.home=C:\javaweb\jdk1.8.0_101_64\jre

sun.java.command=org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner

-version 3 -port 57975 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader

-loaderpluginname org.eclipse.jdt.junit4.runtime -test com.jim.jdbc.JDBCTest:test java.specification.vendor=Oracle

Corporation user.language=zh awt.toolkit=sun.awt.windows.WToolkit

java.vm.info=mixed mode

java.version=1.8.0_101

java.ext.dirs=C:\javaweb\jdk1.8.0_101_64\jre\lib\ext;C:\Windows\Sun\Java\lib\ext

sun.boot.class.path=C:\javaweb\jdk1.8.0_101_64\jre\lib\resources.jar;C:\javaweb\jdk1.8.0_101_64\jre\lib\rt.jar;C:\javaweb\jdk1.8.0_101_64\jre\lib\sunrsasign.jar;

java.vendor=Oracle Corporation

file.separator=\

java.vendor.url.bug=http://bugreport.sun.com/bugreport/

sun.cpu.endian=little

sun.io.unicode.encoding=UnicodeLittle

sun.desktop=windows

sun.cpu.isalist=amd64

  输出的东西也太乱了,我就加了一句判断看有没有jdbc.drivers这个属性。代码如下:

@Test
    public void test(){
        //获取所有的属性
        Properties properties = System.getProperties();
        //为了看看系统的属性有几个,加了一个计数器
        int count = 0;
        //遍历所有的属性
        for (String key : properties.stringPropertyNames()) {
            System.out.println(key + "=" + properties.getProperty(key));
            count++;
            if (key.equalsignorecase("jdbc.drivers")){
                System.out.println("YES");
                return ;
            }

        }
        System.out.println(count);
    }

  结果是根本没有jdbc.drivers这个属性,系统的属性有57个,比java api中列出来的要多,所以如果你的属性不再java api的所列出的列表中,不要灰心,可以使用上面的代码判断一下。

  我后来看了java api之后,加了一句代码在方法最前面:

System.setProperty("jdbc.drivers","aaa.bbb.ccc");

  结果就显示有了。也就是说,DriverManager中的jdbc.drivers这个系统属性不是本来系统自带的,需要用户自己设定采用。如果不设定,则为null。这样看来,一切都说通了。

相关阅读

使用System.getProperty()

System.getProperty(“参数”); 参数 取得内容 user.name 用户的账户名称 user.home 用户的主目录 user

System.getProperty()

很多时候我们需要在项目中读取外部属性文件,用到了System.getProperty("")方法。这个方法需要配置JVM系统属性,那么如何配置呢? 那就

java项目中设置 System.getProperty(“XXX”)自定义变量

经测试,本方法在windows环境下安装的tomcat是起作用的。在java项目中设置自定义变量的方法有很多种,如果你项目中使用 System.getP

System.getProperty()方法获取系统变量(转 阿进的写字

关于 system 中 getproperty 方法的用法: https://blog.csdn.net/weixin_37139197/article/details/78877766 getProperty(String

System.getProperty()方法大全

System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.println("Java提供商

分享到:

栏目导航

推荐阅读

热门阅读