sorry!!Exception in thread "main" java.lang.ClassNotFoundException: con.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at sqldb.DBTester.main(DBTester.java:64)
Java Result: 1
生成成功(总时间:0 秒)

解决方案 »

  1.   

    我看的书是《java 网络编程精解》 --孙卫琴 
    这段代码是对着书上316页写的。
    我想实现用JAVA连接数据库,
    这之前以按照书上的要求用以下语句设了mysql数据库的用户
    use mysql;
    grant all privileges on *.* to dbuser@localhost identified by '1234' with grant option;
      

  2.   


    高分求答。我用的是netBean,jdk 1.6,也下载了mysql-connector-java-5.1.7-bin.jar,书上说要把这个东西放在项目中的lib下,所以我也把它放到了
    这个你引导工程里面。。
      

  3.   

    放到lib还要在工程里面add jars
      

  4.   

    4楼不是告诉LZ了,需要把MySQL的jdbc驱动放到项目的lib中,一般也就是你项目的WEB-INF\lib目录下。
      

  5.   

    我把mysql-connector-java-5.1.7-bin.jar
    放到了D:\java\WebApplication2\web\WEB-INF\lib下面(事实上lib文件夹并不存在,所以我得自己创建这个文件夹)
    然后运行以下源程序,结果还是错。结果如下:
    Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:169)
            at DBTester.main(DBTester.java:22)
    Java Result: 1
    生成成功(总时间:1 秒)
    然后把mysql-connector-java-5.1.7-bin.jar
    放到了D:\java\WebApplication2\web\WEB-INF下面,运行时的结果如下:
    deps-jar:
    Compiling 1 source file to D:\java\WebApplication2\build\web\WEB-INF\classes
    D:\java\WebApplication2\src\java\DBTester.java:25: 软件包 com.mysql.jdbc 不存在
       DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    1 错误
    D:\java\WebApplication2\nbproject\build-impl.xml:323: The following error occurred while executing this line:
    D:\java\WebApplication2\nbproject\build-impl.xml:149: Compile failed; see the compiler error output for details.
    生成失败(总时间:0 秒)
    然后我在“库”里导入mysql-connector-java-5.1.7-bin.jar,便如愿运行。源代码:
    /*
     * DBTester.java
     *
     * Created on 2008年11月11日, 下午4:01
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
    import java.sql.*;public class DBTester{
      public static void main(String args[])throws Exception{
        Connection con;
        Statement stmt;
        ResultSet rs;
        //加载驱动器,下面的代码为加载MySQL驱动器
        Class.forName("com.mysql.jdbc.Driver");
        //注册MySQL驱动器
       DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //连接到数据库的URL
        String dbUrl = "jdbc:mysql://localhost:3306/STOREDB";
        String dbUser="dbuser";
        String dbPwd="1234";
        //建立数据库连接
        con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
        //创建一个Statement对象    stmt = con.createStatement();
        //增加新记录
        String name1=new String("小王".getBytes("GB2312"),"ISO-8859-1");
        String address1=new String("上海".getBytes("GB2312"),"ISO-8859-1");
        stmt.executeUpdate("insert into CUSTOMERS (NAME,AGE,ADDRESS) VALUES ('"+name1+"',20,'"+address1+"')");    //查询记录
        rs= stmt.executeQuery("SELECT ID,NAME,AGE,ADDRESS from CUSTOMERS");
        //输出查询结果
        while (rs.next()){
          long id = rs.getLong(1);
          String name = rs.getString(2);
          int age = rs.getInt(3);
          String address = rs.getString(4);
          
          //字符编码转换 
          if(name!=null)name=new String(name.getBytes("ISO-8859-1"),"GB2312");  
          if(address!=null)address=new String(address.getBytes("ISO-8859-1"),"GB2312");            
          //打印所显示的数据
          System.out.println("id="+id+",name="+name+",age="+age+",address="+address);
        }
     System.out.println("ddddddddddddddddddddddddddddddddddddddd");
        //删除新增加的记录
        stmt.executeUpdate("delete from CUSTOMERS where name='"+name1+"'");    //释放相关资源
        rs.close();
        stmt.close();
        con.close();
      }
    }
    /****************************************************
     * 作者:孙卫琴                                     *
     * 来源:<<Java网络编程精解>>                       *
     * 技术支持网址:www.javathinker.org                *
     ***************************************************/
      

  6.   

    我猜是不是你在放好包后没有重新启动服务器?服务器每次启动的时候都要重新加载一下所有的配置,包括包,如果你在服务器启动后做的修改的话那修改还是没有被重新部署上去。加入库的话是编译器用的,也就是netbean。你在netbean里面运行的话只要能找到这个jar包里面的类自然能运行。
      

  7.   

    我用的是netbean,
    按照你的方法我从新把mysql-connector-java-5.1.7-bin.jar
    挂到D:\java\WebApplication2\web\WEB-INF  下
    启动服务器,如下:
    Using CATALINA_BASE:   C:\Documents and Settings\载成\.netbeans\5.5.1\apache-tomcat-5.5.17_base
    Using CATALINA_HOME:   D:\Program files\Program_Tool\JAVA\NetBeanS_5.5.1\enterprise3\apache-tomcat-5.5.17
    Using CATALINA_TMPDIR: C:\Documents and Settings\载成\.netbeans\5.5.1\apache-tomcat-5.5.17_base\temp
    Using JRE_HOME:        D:\Program files\Program_Tool\JAVA\jdk1.6.0_07
    2008-11-12 9:45:19 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program files\Program_Tool\JAVA\jdk1.6.0_07\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;F:\oracle\product\10.1.0\Db_1\bin;F:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;F:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;D:\Program files\Program_Tool\Rational\common;C:\Program Files\MySQL\MySQL Server 5.0\bin;D:\Program files\Program_Tool\JAVA\jdk1.6.0_07\bin;D:\Program files\Player\stome\Codec;D:\Program files\Player\stome
    2008-11-12 9:45:19 org.apache.coyote.http11.Http11BaseProtocol init
    信息: Initializing Coyote HTTP/1.1 on http-8084
    2008-11-12 9:45:19 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 953 ms
    2008-11-12 9:45:19 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2008-11-12 9:45:19 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/5.5.17
    2008-11-12 9:45:19 org.apache.catalina.core.StandardHost start
    信息: XML validation disabled
    2008-11-12 9:45:21 org.apache.coyote.http11.Http11BaseProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8084
    2008-11-12 9:45:21 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2008-11-12 9:45:21 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/62  config=null
    2008-11-12 9:45:21 org.apache.catalina.storeconfig.StoreLoader load
    信息: Find registry server-registry.xml at classpath resource
    2008-11-12 9:45:21 org.apache.catalina.startup.Catalina start
    信息: Server startup in 2031 ms就弹出一个“jsp page javaserver faces 欢迎页”
    不过很奇怪的是它并没有运行我的程序。
    于是我手动运行我的程序。
    然后出现以下信息:
    Compiling 1 source file to D:\java\WebApplication1\build\web\WEB-INF\classes
    D:\java\WebApplication1\src\java\DBTester.java:11: 软件包 com.mysql.jdbc 不存在
       DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    1 错误
    D:\java\WebApplication1\nbproject\build-impl.xml:323: The following error occurred while executing this line:
    D:\java\WebApplication1\nbproject\build-impl.xml:149: Compile failed; see the compiler error output for details.
    生成失败(总时间:0 秒)我觉得关键是这句
     D:\java\WebApplication1\src\java\DBTester.java:11: 软件包 com.mysql.jdbc 不存在
       DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    1 错误
    它所对应的源程序是:
    DriverManager.registerDriver(new com.mysql.jdbc.Driver());项目树如下:
    WebApplication1
    |
    -web页
      |
       -META-INF
       -WEB-INF
           |
            -faces-config.xml
            -mysql-connector-java-5.1.7-bin.jar
               |
                ....
               -com
                 |
                 -mysql
                    |
                    jdbc
                     |
                     .....
                     Driver.class
    现在又发觉一个很有趣的问题:在这个connector-java-5.1.7-bin.jar树下的所有class类都被netbean打上红色的X,是不是这里有什么错误?
      

  8.   

    Class.forName("con.mysql.jdbc.Driver"); 
      

  9.   

    把mysql-connector-java-5.1.7-bin.jar 
    放到D:\java\WebApplication2\web\WEB-INF\lib目录下
      

  10.   

    你不应该把你的jar包直接考过去,你先找到这个些包然后把它添加进去,应该有一个add extenl jar方法,然后要发布你的工程,包就直接拷贝到你的lib目录下了,也没有必要那么麻烦,记得要重启服务器在你添加jar包或则修改了java文件之类的