无法找到或加载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.jar
, ojdbc6.jar
和ojdbc6_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)或更高版本的驱动程序将从类路径自动加载(使用-cp
, Class-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
复制到
,需要在“结构” – >“SDK” – >“添加类路径”中将ojdbc6.jar
文件添加到