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

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

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

System.getProperty(“jdbc.drivers”);

  getProperty()这个方法是获取指定键指示的系统属性的,也就是说上面的代码获取的是jdbc.drivers这个属性。我写了个测试测试输出,发现是null值。于是就打算看看系统属性中有没有jdbc.drivers这个值。
  查看了一下java api中的getProperty()这个方法,后通过getProperties()找到了能获取到的属性,如下图所示:


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

    @Testpublic 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这个属性。代码如下:

@Testpublic 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。这样看来,一切都说通了。

http://www.xdnf.cn/news/807787.html

相关文章:

  • ubuntu 10.04 下载源列表
  • 《疯狂的站长》读后感1
  • 惊奇的发现37个上班族必看的网站,不看就OUT了
  • iPhone4s降级ios6.1.3流程总结
  • 分享几个普通人做私活赚外快的好地方
  • 大一python编程题库和答案,大一python程序设计考题
  • 值得收藏 Modbus RTU 协议详解
  • 火车头发布html模板,织梦V5.7火车头采集器全套Web发布模块(含软件模型、图集模型、商品模型)...
  • opendirve ,好用的免费直链(外链)网盘
  • 「营业日志 2020.11.26」一道纳什均衡数数题
  • Sky入围CCTV06体坛风云人物侯选名单
  • 素材类dedecms织梦模板免费下载
  • Visual Studio 6.0 企业版 下载
  • DOS操作系统
  • 一文搞定:whois数据库查询域名信息(WHOIS)
  • MSN登陆不了怎么办
  • iPad2 4.3.3完美越狱教程 一键即可操作
  • 在Android中使用SyncAdapter同步数据全攻略
  • HTB靶场 Perfection
  • U盘修复技巧大全
  • 支付宝的架构
  • QQ分享 QQ空间分享 API链接:
  • 黑客帝国之酷炫屏保数字雨
  • 十款性能最佳的压缩算法
  • Nero注册与下载
  • 【网络安全】七个最常见的黑客攻击技术,98%的人都遇到过(通俗易懂版
  • 龙将加速浏览器_《命运2》“凌光之刻”各版本内容介绍,迅游加速流畅开玩全新DLC...
  • 备份Informix-Online数据库三法
  • 《男人志》片片,写程序累了,来养下眼睛吧
  • mysql8.0(单表查询与多表查询)