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

我已经安装了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任何原因?

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

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

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

 java -cp \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 ,请参阅Oracle jdbc驱动程序类之间的区别?

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

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

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

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

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

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

在将ojdbc6.jar复制到/jre/lib/ext/ ,需要在“结构” – >“SDK” – >“添加类路径”中将ojdbc6.jar文件添加到/jre/lib/ext/ojdbc6.jar