无法找到或加载oracle.jdbc.driver.OracleDriver

时间:2013-07-17 13:50:23

标签: java oracle jdbc

我已经安装了Oracle 11.2和Java:

java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

在命令行中,如果我尝试:

java oracle.jdbc.driver.OracleDriver

Java说:impossibile加载或找到oracle.jdbc.driver.OracleDriver

我复制了ojdbc5.jarojdbc6.jarojdbc6_g.jar

oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
C:\Program Files\Java\jdk1.7.0_09\lib

如果我运行echo %CLASSPATH%我得到:

C:\Program Files\Java\jdk1.7.0_09\lib (ie where I have copied the jar files)

Java无法找到oracle.jdbc.driver.OracleDriver的任何原因?

4 个答案:

答案 0 :(得分:7)

您引用类路径上的文件夹并期望它加载其中的所有jar。这不是类路径的工作方式,你需要引用特定的jar(通常你应该将第三方jar放在JDK文件夹中)。

同样重要的是要知道除了最基本的用例之外,java应用程序通常会忽略CLASSPATH

您可以通过以下方式完成您尝试实现的目标:

java -cp <path-to>\ojdbc7.jar oracle.jdbc.OracleDriver

这将失败顺便说一句,因为OracleDriver没有public static void main(String[] args)方法,因此无法像这样运行。使用JDBC驱动程序的常规方法是在应用程序类路径上安装驱动程序,并简单地指定正确的驱动程序URL。 JDBC 4.0(Java 6)或更高版本的驱动程序将自动从类路径加载(与-cpClass-Path清单条目等一起指定)。

在不相关的说明中,oracle.jdbc.driver.OracleDriver被视为已弃用,请改用oracle.jdbc.OracleDriver,请参阅Difference between Oracle jdbc driver classes?

答案 1 :(得分:1)

在类路径上放置目录不会将所有jar文件放在类路径中的该目录中。目前尚不清楚为什么要将Oracle jar文件复制到Java安装目录中 - 我建议这样做 - 但是你应该明确列出该位置。例如,如果您已将其复制到相对于您的应用程序的lib目录中,则可以使用:

java -cp lib\ojdbc7.jar;. your.class.Name

可以*命令行参数中使用-cp来查找所有jar文件,例如

java -cp lib\*;. your.class.Name

或者可以将其复制到“扩展”目录中 - 但我认为明确更清楚。

答案 2 :(得分:0)

我也有同样的问题,这就是我所做的 我解压缩了ojdbc5.jar,然后我在提取的ojdbc5.jar中复制了oracle文件夹,然后粘贴到我编写jdbc程序的当前位置(不提程序,因为它与程序员不同),然后使用import oracle.jdbc。*;我的jdbc程序中的语句为oracle.jdbc,其中包含OracleDriver。 其余的程序是相同的

答案 3 :(得分:0)

在将ojdbc6.jar复制到<jdk-home>/jre/lib/ext/之前,在IDEA中,您需要在&#34; Structure&#34;中添加ojdbc6.jar文件。 - &GT; &#34; SDK&#34; - &GT; &#34;添加classpath&#34;到<jdk-home>/jre/lib/ext/ojdbc6.jar