首页 > 编程知识 正文

getattribute 方法,could not resolve the connect

时间:2023-05-03 11:35:24 阅读:62907 作者:638

今天,我在读JDBC的驱动程序管理器类的源代码时,看到了这样的代码。

system.getproperty (" JDBC.drivers "

名为getProperty ()的方法获取由指定密钥指示的系统属性,上面的代码获取名为jdbc.drivers的属性。 我写了测试输出,发现是空值。 因此,我打算检查系统属性中是否有名为jdbc.drivers的值。

我查看了java api中名为getProperty ()的方法,并找到了可以从getProperties () )获取的属性,如下图所示。

但是,居然没有我的jdbc.drivers,我决定以负责任的态度尝试输出所有的属性。 以下是使用System.getPropertys ()和System.getProperty () )使所有系统属性成为变量的方法:

@Test public void test ()//所有属性属性属性=system.get properties ); //与所有属性for (string key : properties.stringpropertynames () )//输出相对应的键和值system.out.println ) key '=' propeper

Java.runtime.name=Java(TM ) SE Runtime Environment

sun.boot.library.path=c :Java webJDK1.8.0_ 101 _ 64JRE 欢乐的音响

Java.VM.vendor=Oracle corporation

Java.vendor.URL=http://Java.Oracle.com /

path.separator=;

Java.VM.name=JavaHotspot(TM ) 64-bit服务器VM

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

sun.Java.launcher=sun _ standards un.OS.patch.level=

Java.VM.specification.name=javavirtualmachinespecification

user.dir=e :7.projectcodesourceJDBC

Java.runtime.version=1.8.0_ 101-B13

Java.awt.graphics env=sun.awt.win32 graphics environment

Java.endorsed.dirs=c :Java webJDK1.8.0_ 101 _ 64JRElibendorsed

OS.arch=amd64 Java.io.tmpdir=c :usersadmin I至1appdatalocaltemp

line.separator=

Java.VM.specification.vendor=oraclecorporationuser.variant=

OS.name=windows 10s un.jnu.encoding=gbk

Java.library.path=c :Java webJDK1.8.0_ 101 _ 64 欢乐音响;

Java.specification.name=javaplatformapispecification

java.class.version=52.0

sun.management.com piler=hotspot 64-bit tiered

Compilers os.version=10.0

user.home=c :usersadministrator

user.timezone=

Java.awt.printer job=sun.awt.windows.wprinter job

file.encoding=UTF-8

java.specification.version=1.8

user.name=Administrator

Java.class.path=e :7.projectcodesourceJDBCtargettest-classes;

Java.VM.specification.version=1.8 sun.arch.data.model=64

Java.home=c :Java webJDK1.8.0_ 101 _ 64JRE

sun.Java.com mand=org.eclipse.JDT.internal.JUnit.runner.remote test runner

-版本3-port 57975-testloaderclassorg.eclipse.JDT.internal.JUnit4. runner.JUnit4test loader

- loaderpluginnameorg.eclipse.JDT.JUnit4. runtime-test com.Jim.JDBC.JDBC test 3360 test Java.specification.vendation

corporation user.language=zh awt.toolkit=sun.awt.windows.wtoolkit

Java.VM.info=混合模式

java.version=1.8.0_101

Java.ext.dirs=c :Java webJDK1.8.0_ 101 _ 64JRElibext; c :windowssunJavalibext

sun.boot.class.path=c :Java webJDK1.8.0_ 101 _ 64JRElibresources.jar; c :Java webJDK1.8.0_ 101 _ 64JRElibrt.jar; c :Java webJDK1.8.0_ 101 _ 64JRElibsunrs asign.jar;

java.vendor=Oracle Corporation

file.separator=

Java.vendor.URL.bug=http://bugreport.sun.com/bugreport /

sun.cpu.endian=little

sun.io.unicode.encoding=unicode little

sun.desktop=windows

sun.cpu.isalist=amd64

因为输出的东西也一团糟,所以加入了判断是否有jdbc.drivers这个属性的一句话。 代码如下。

@Test public void test ()//所有属性属性属性=system.get properties ); //为了查看系统的一些属性,添加了计数器int count=0所有属性for (string key : properties.string propertynames () ) system if (key.equals ignore case (JDBC.drivers ) ) system.out.println ) ) yes ); 返回; }system.out.println(count ); }结果,完全没有jdbc.drivers属性。 系统的属性有57个,比java api中列出的多,所以如果你的属性没有在java api中列出,请不要泄气,用上面的代码来判断。

之后,在看到java api后,在方法的开头添加了代码:

system.set property (' JDBC.drivers ',' aaa.bbb.ccc ' );

结果揭晓了。 也就是说,驱动程序管理器名为jdbc.drivers的系统属性不是原始系统所具有的属性,必须由用户自己设置和采用。 如果不设置,则为null。 这样看,一切都通了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。