我写了一个小代码: 
import java.sql.*; 
public class test{ 
public static void main(String args[]){ 
try{ 
    String ur="jdbc:mysql://localhost:3306/test"; 
    String user="root"; 
    String password="123456"; 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    Connection con=DriverManager.getConnection(ur,user,password); 
    System.out.println("success"); 

catch(Exception e){} 
} } 
注:jdk环境设置没问题;mysql-connector-java-5.1.6-bin.jar,也在我的classpath中。 
    mysql服务器处于启动状态,没问题。3306端口处于监听状态。我的想连接装数据时候自动装上的那个test数据库。 
    我的用户明:root 密码:123456.我登陆过。密码和用户都没问题; 
环境:jdk1.6+mysql6.0; 这个代码编译没问题:运行的时候提示: Exception in Thread "main" java.lang.NoClassDefFoundError:java/sql/SQLClientInfoException 
at java.lang.Class.forName0(native Method) 
at java.lang.Class.forName(Unknown Source) 
at com.mysql.jdbc.ConnectionImpI. <clinit> <ConnectionImpl.java:213> 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) 
at java.sql.DirverManager.getConnection(Unknown Source) 
at java.sql.DirverManager.getConnection(Unknown Source 
at test.main(test.java:12) 
请各位兄台帮小弟一个忙。看看怎么修改修改。我先表示感谢~

解决方案 »

  1.   

    根本就没有找到java/sql/SQLClientInfoException 
    你的classpath定义了吗?
    classpath里除了mysql-connector-java-5.1.6-bin.jar, 再加上tools.jar和dt.jar吧我测了一下上述代码,无论能不能连上,都没问题。
      

  2.   

    语句没问题,我运行了下很正常呀,只有可能差JAR包了
      

  3.   

    这是我的classpath:.;C:\Program Files\Java\jdk1.6.0\lib\tools.jar;C:\Program Files\Java\jdk1.6.0\lib\dt.jar;C:\Program Files\Java\jdk1.6.0\lib\mysql.jar 
    最后jar包的名字是我改的原来是:mysql-connector-java-5.1.6-bin.jar
    如果说是tool.jar和dt.jar有问题。那么。我输出:helloworld这种小程序都应该不行。但是我试了能成功运行。
    请各位高人。帮我检查一下我的classpath;上面的那个是我有ctrl+A加ctrl+c拷贝过来。没错
      

  4.   

    试试这样import java.sql.*; 
    public class test{ 
    public static void main(String args[]){ 
    try{ 
        String ur="jdbc:mysql://localhost:3306/test?user=root&password=123456"; 
        //String user="root"; 
        //String password="123456"; 
        Class.forName("com.mysql.jdbc.Driver").newInstance(); 
        Connection con=DriverManager.getConnection(ur); 
        System.out.println("success"); 

    catch(Exception e){} 
    } } 
      

  5.   

    现在看来,你的classpath是没有问题了。
    问题应该出在你的path,即java.exe的路径。我虽然不知道你的运行命令的详细路径是怎么样的。你设置了以上的classpath以后,
    set PATH="C:\Program Files\Java\jdk1.6.0\bin";%PATH%
    然后,再java test
    试试。你这个错误,显然是用低版本的jvm,高版本的jvm的classpath,导至jdk1.6中的SQLClientInfoException无法解析的错误。(这个类在1.5及以下版本是没有的)建议你密切关注环境变量,任何一种操作系统下边,环境变量都是非常基础非常重要的东西。
      

  6.   

    什么跟什么啊? 又设置path又设置classpath的,根本不是问题的所在。看报的什么错啊!--java/sql/SQLClientInfoException 。翻一下不很清楚吗,是mysql客户端的信息错误,具体而言就是楼主代码中的 String ur="jdbc:mysql://localhost:3306/test"; 部分,用'test'是不正确的。楼主应该看一下这个你本地所使用的数据库名,不要从网上一下子把代码复制过来不加修改就执行.......
      

  7.   

    web环境使用需要在lib中加入mysql驱动包
      

  8.   

    系统的classpath呢?有没有问题???