在ClassPath中包进oracler  的CLASSES12.JAR(ORACLE 的jdbc驱动)

解决方案 »

  1.   

    到api中看看Class.forName()的注释,这里做一下大致的分析:
    1. 只是将类放入一个包中
    2. 结果是Class.forName无法找到驱动类
    3. api中是这样解释的Class.forName(String)等同于调用Class.forName(className, true, currentLoader)
    那么就是说,通过currentLoader无法加载类,而currentLoader的属性有可能由于你的类(OracleDB_1)加了一个package后发生了变化,在类路径上面无法找到oracle driver.建议看看classpath等等设置。
      

  2.   

    我的CLASSPATH是这样设的:“.;D:\oracle\ora92\jdbc\lib\classes12.jar;%CLASSPATH%;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;”
      

  3.   

    application server 找不到你的驱动,把D:\oracle\ora92\jdbc\lib\classes12.jar拷贝到taomcat\lib下,如果是别的AS,拷贝到相应目录,重起AS
      

  4.   

    我的运行过程如下:
     D:\wwwroot\WEB-INF\classes\tinger 的目录[.]                [..]               sample.java        sample.class
    OracleDB.class     OracleDB.java      OracleDB_1.java    OracleDB_1.class
                   6 个文件          5,539 字节
                   2 个目录  2,039,336,960 可用字节D:\wwwroot\WEB-INF\classes\tinger>cd ..D:\wwwroot\WEB-INF\classes>dir/w
     驱动器 D 中的卷是 本地磁盘
     卷的序列号是 3EAD-5B83 D:\wwwroot\WEB-INF\classes 的目录[.]      [..]     [tinger]
                   0 个文件              0 字节
                   3 个目录  2,039,336,960 可用字节D:\wwwroot\WEB-INF\classes>java OracleDB_1
    Exception in thread "main" java.lang.NoClassDefFoundError: OracleDB_1
      

  5.   

    To:learnner( ) 按你说的去做,还是出错啊!!!!
      

  6.   

    关键是我在不加上“package tinger”时他不抛出异常,但是加上去就会出现异常。很怪的问题,高手们帮我解决一下吧。
      

  7.   

    D:\wwwroot\WEB-INF\classes>java OracleDB_1
    Exception in thread "main" java.lang.NoClassDefFoundError: OracleDB_1
    改为
    D:\wwwroot\WEB-INF\classes>java tinger.OracleDB_1
      

  8.   

    多看看classpath
    了解一下java对类路径的搜索
      

  9.   

    javac -d c:\tinger c:\tinger\OracleDB_1.java
    java tinger.OracleDB_1
      

  10.   

    c:\tinger>java tinger.OracleDB_1