ClassNotFoundException oracle.jdbc.driver.OracleDriver只在servlet中使用Eclipse和oracle

时间:2013-03-06 10:04:13

标签: eclipse

以下代码在行上失败:Class.forName("oracle.jdbc.driver.OracleDriver"); 错误:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

两个printlns打印:Wed_Jun_22_11:18:51_PDT_2005 false这让我觉得这个类存在并且可以找到。此完全相同的类也适用于非servlet应用程序。

我已多次重启所有内容并多次重新生成应用程序/ servlet。所有值都经过硬编码,使其简单明了。

我正在使用:Eclipse JavaEE 1.4.2 Tomcat 7 jdk1.7 Oracle 11g R2 Windows 7 64位

我已经在web-inf中添加了jar文件。但它仍然会出现以下错误:java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver

任何建议都会很棒。

2 个答案:

答案 0 :(得分:0)

如果不查看你的应用程序和tomcat服务器,就很难分清楚到底出了什么问题。但是你的问题有一些提示。

  1. NoClassDefFoundError总是让我觉得有类碰撞,而不是缺少jar文件。掌握ClassNotFoundNoClassDefFoundError

  2. 之间的区别
  3. tomcat以与普通java应用程序不同的方式加载类。通常,java应用程序中的类加载器将遵循委托模式,这意味着子类加载器将始终将类加载作业委托给其父类加载器。但是tomcat并没有完全遵循这一点。因此,它将自行加载(查找源文件,读取字节代码并创建类的实例)。

  4. 请检查您的tomcat lib以及tomcat下的所有Web应用程序,看看是否有多个版本的 ojdbcXXX.jar

答案 1 :(得分:0)

通过C:\ apache-tomcat-7.0.47 \ lib路径(此路径可能不同 - >基于您粘贴Tomcat服务器的位置),然后通过ojdbc14.jar(如果它不包含)。

然后在eclipse中重启服务器,然后在服务器上运行你的应用程序