在用eclipse3.2学习java,JAVA的classpath配置为.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib
eclipse中“已安装的JRE”中选择了%JAVA_HOME%,即D:/JDK_1_6,在jar包列表中 %JAVA_HOME%\lib;%JAVA_HOME%\jre\lib下的所有jar包,包括我放进去的JDBC-MySQL驱动包写完JDBC代码,运行通过了,一切正常,但我在CMD下先编译java文件,再java运行,则出现了
Exception in thread "main" java.lang.NoClassDefFoundError: JDBC1 (wrong name: my
jdbc/JDBC1)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        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)异常。提示没有Class,但怎么可能呢,不是说jar包放在classpath中规定的目录下就行了吗?

解决方案 »

  1.   

    把jar包放到classpath 是没错的 可能是你在环境变量classpath 中没有添加 classpath得值为 ". ; "
      

  2.   

    to:1楼
    JAVA的classpath配置为    .;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib 
    并且我把下载的mysql-connector-java-3.0.17-ga-bin.jar文件放在%JAVA_HOME%\jre\lib下了
    代码帖在下面,完整版package myjdbc;import java.sql.*;public class JDBC1 {
    public static void main(String[] args) {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
    // step1: load the driver
    Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/test";
    String username = "root";
    String password = "admin"; // step2: get Connection
    conn = DriverManager.getConnection(url, username, password); // step3: create Statement and execute SQL
    stmt = conn.createStatement();
    String sql = "select * from jdbc"; // step4: get result set
    rs = stmt.executeQuery(sql); // step5: retrieve the data from data set, convert column to
    // specific var in Java
    while (rs.next()) {
    String title = rs.getString("title");
    System.out.print(title);
    }
    } catch (SQLException e1) {
    System.out.println(e1.toString());
    } catch (ClassNotFoundException e2) {
    System.out.println(e2.toString());
    } finally {
    try {
    if (rs != null) {
    rs.close();
    rs = null;
    }
    if (stmt != null) {
    stmt.close();
    stmt = null;
    }
    if (conn != null) {
    conn.close();
    conn = null;
    }
    } catch (SQLException e) {
    System.out.println(e.toString());
    }
    }
    }
    }
      

  3.   

    不好意思 看错了
    Java\jdk1.6.0_06\jre\lib\ext
    包拷进去就好了
      

  4.   

    说实话,在%JAVA_HOME%\jre\lib\ext下我已经把驱动拷进去了
      

  5.   

    http://dev.csdn.net/article/66/66736.shtm
      

  6.   

    要在命令行运行,你的classpath要包含mysql的驱动才行。
      

  7.   


    就相当于加了同样的路径文件了么
    按你的路径建文件夹myjdbc把你的JDBC1.java放进去
    javac x:\\myjdbc\\JDBC1.java
    java myjdbc.JDBC1 
      

  8.   

    按KingNE的方法试了,但出现
    Exception in thread "main" java.lang.NoClassDefFoundError: JDBC1
    怪了,为什么还是没有找到类
      

  9.   

    看看是不是你的classpath出现了两份jdbc驱动,我以前碰到过这样的问题,保留一个就好了
      

  10.   

    在命令提示符set classpath=驱动包的全路径;%classpth%;
      

  11.   

    估计是你的CMD命令不对(或者是你执行javac命令的目录不对),在当前的类文件下
    javac -d c:*.java
    你试试。