import java.sql.*;public class Mysql
{
public static void main(String[] args) 
{
    try {
      String driver = "org.gjt.mm.mysql.Driver";
      String url = "jdbc:mysql://localhost:3306/test";//server是数据库名
      String user = "root";
      String password = "";
      Connection conn = null;
      ResultSet rs = null;
      Statement stmt = null;
      Class.forName(driver).newInstance();
      conn = DriverManager.getConnection(url, user, password);
      stmt = conn.createStatement();
      rs = stmt.executeQuery("select *");
      while (rs.next()) {
        System.out.println("" + rs.getInt(1) + "");
        System.out.println(":" + "");
      }
      rs.close();
      conn.close();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}如上源代码,编译可以通过,运行时出现NoClassDefFoundError错误,为什么?
classpath加了JDBC的驱动路径,也加了.       但还是有错,什么原因?

解决方案 »

  1.   

    还是classpath的问题
    windows 下
    set classpath=.;X:\xxx\mysql-connector-java-x.x.xx-bin.jar
    unix/linux下
    CLASSPATH=.:/xxx/mysql-connector-java-x.x.xx-bin.jar
    export CLASSPATH
    另外,程序中
    rs = stmt.executeQuery("select *");
    应改为
    rs = stmt.executeQuery("select * from 你的表");
      

  2.   

    NoClassDefFoundError
    而不是ClassNotFoundException?
      

  3.   

    没有找到驱动程序,你应该把驱动程序放到系统路径下或你的路径下(要加在classpath里)
      

  4.   

    URL写错了,假设你的MySQL的用户名是root,口令为root:url="jdbc:mysql://localhost:3306/server?user=root&password=root";
      

  5.   

    classpath添加新路径后在win2000,winxp下要重启.
    要不就是路径添加错误.
      

  6.   

    conn = DriverManager.getConnection(url, user, password);
    改为conn = DriverManager.getConnection(url);
    rs = stmt.executeQuery("select *");也不对
    改为
    rs = stmt.executeQuery("select * from 你的表");
      

  7.   

    URL写错了,假设你的MySQL的用户名是root,口令为root:url="jdbc:mysql://localhost:3306/server?user=root&password=root";
    同时把conn = DriverManager.getConnection(url, user, password);
    改为conn = DriverManager.getConnection(url);
    rs = stmt.executeQuery("select *");也不对
    改为
    rs = stmt.executeQuery("select * from 你的表");
      

  8.   

    程序源代码没有问题,我以前测试都通过了……我怀疑是classpath的问题,但是我确实已经加上了,不过,jar文件我没有加到classpath里去。
    还有,to:believefym,确实是NoClassDefFoundError
      

  9.   

    那就是驱动程序没找到,你放到classpath里
      

  10.   

    呵呵 
    第一:
    String driver = "org.gjt.mm.mysql.Driver";//或许你用的驱动不是这个。
    更改为:
    String driver="com.mysql.jdbc.Driver".
    第二:
    rs = stmt.executeQuery("select *");// SQL语句不对吧^_^
    更改为:
    rs = stmt.executeQuery("select * from table_name");我觉得可以解决你的问题了。good lucky!
      

  11.   

    在cmd下是NoClassDefFoundError错误,在eclipse下是ClassNotFoundException
      

  12.   

    两个驱动程序都有,我现在用的是org.gjt.mm.mysql.Driver,但是总报找不到这个类的错误,但是明明已经在 classpath里加上了,郁闷啊
      

  13.   

    哪位高手帮我看看好吗,我把源代码和驱动文件Driver.class都发给你
      

  14.   

    就是找不到.class文件,你把这个.class文件放到相应的目录下。如果你这个Driver.class没有package ***的话,放到当前目录下就行。驱动也放到/lib下,如果再错了,可就是你代码有错了。