这种例外的可能原因是什么?

问题描述:

我收到以下错误,当我运行Java程序:这种例外的可能原因是什么?

Exception in thread "main" java.lang.UnsatisfiedLinkError: t2cPingDatabase 
     at oracle.jdbc.driver.T2CConnection.t2cPingDatabase(Native Method) 
     at oracle.jdbc.driver.T2CConnection.doPingDatabase(T2CConnection.java:503) 
     at oracle.jdbc.driver.PhysicalConnection.pingDatabase(PhysicalConnection.java:4886) 
     at oracle.jdbc.driver.PhysicalConnection.pingDatabase(PhysicalConnection.java:4899) 
     at oracle.jdbc.pool.OracleImplicitConnectionCache.testDatabaseConnection(OracleImplicitConnectionCache.java:2174) 
     at oracle.jdbc.pool.OracleImplicitConnectionCache.performPooledConnectionTask(OracleImplicitConnectionCache.java:1343) 
     at oracle.jdbc.pool.OracleImplicitConnectionCache.doForEveryCachedConnection(OracleImplicitConnectionCache.java:1208) 
     at oracle.jdbc.pool.OracleImplicitConnectionCache.refreshCacheConnections(OracleImplicitConnectionCache.java:1848) 
     at oracle.jdbc.pool.OracleConnectionCacheManager.refreshCache(OracleConnectionCacheManager.java:480) 
     at tkpjb7382521.refreshConnectionPool(tkpjb7382521.java:199) 
     at tkpjb7382521.test(tkpjb7382521.java:115) 
     at tkpjb7382521.run(tkpjb7382521.java:46) 
     at sqlj.qa.harness.AppJdbcHarness.RunTestCase(AppJdbcHarness.java:158) 
     at sqlj.qa.harness.AppJdbcHarness.main(AppJdbcHarness.java:79) 

可能是什么这个可能的原因?

+0

您使用的是哪个JDBC URL? – skaffman 2010-02-23 12:31:29

存在对本地方法t2cPingDatabase的调用,看起来像JVM无法找到本机方法定义。可能是库路径问题。

Java在找不到jar中引用的本机方法时抛出此错误。因此,我猜测您正在使用原生(OCI)Oracle JDBC驱动程序,但缺少或配置不正确的Oracle客户端配置,或者您的URL不正确,或者您只是缺少tnsnames.ora文件中的条目。

最简单的解决方案可能只是使用Oracle瘦JDBC驱动程序,而不需要安装Oracle TNS客户端。