2012-06-29 63 views
0

我是JDBC应用程序开发新手。我正在使用Visual Studio 2005编写一个JDBC应用程序。我需要将我的应用程序连接到MS SQL Server 2005.我已经安装了JDBC驱动程序3.0。 Java运行时版本1.6也安装在我的机器上。JDBC API forName异常(ClassNotFoundException)

我正在写一个简单的代码来连接到SQL服务器。我已经在inviromnet变量列表中设置了CLASSPATH。这里是代码

package MyJDBCApp; 

import java.sql.*; 
import java.util.*; 

public class Connect 
{ 
    public static void main(String[] args) 
    { 
     String url = "jdbc:sqlserver://NOI1-501791:1433;databaseName=test;user=sa; password=asdf1234;"; 
     Connection con; 
     Statement stmt; 
     try 
     { 
      Class.forName("com.sqlserver.jdbc.SQLServerDriver"); 
     } 
     catch (java.lang.ClassNotFoundException e) 
     { 
      System.err.print("ClassNotFoundException: "); 
      System.err.println(e.getMessage()); 
     } 
     try 
     { 
      con = DriverManager.getConnection(url); 
      if (con != null) 
       con.close(); 
     } 
     catch (SQLException ex) 
     { 
      System.err.println("SQLException: " + ex.getMessage()); 
     } 
    } 
} 

当我尝试调试此应用程序每次我得到类未找到异常。 任何人都可以帮助我解决这个问题。

在此先感谢。 Registers Zubair

+0

您如何尝试调试applicaiton? IDE或命令提示符? – Unknown

+0

我正在使用IDE进行调试.. –

+0

一旦检查lib是否存在,并且您已包含在项目classpath中或没有。 – Unknown

回答

0

您通常不应该使用CLASSPATH环境变量。它几乎是Java早年的一种人造物。通常程序都有自己的私有类路径。

在IDE中,类路径是项目类路径(也称为构建路径),在IDE之外它通常是jar清单中的Class-Path:条目。

只有在运行命令行而无需其他方式设置类路径(使用java -jarjava -cp时完成)时,才会使用CLASSPATH环境变量。

因此,您需要将JDBC驱动程序添加到项目类路径中。另外,如果您使用sqljdbc4.jar(这是MS SQL Server JDBC 3.0中的JDBC 4驱动程序),那么您甚至不需要执行Class.forName(...),因为JDBC 4引入了自动驱动程序注册。

+0

任何人都可以告诉我如何在我的项目中添加对sqljdbc.jar的引用。我设置了JDBC驱动程序的“引用路径”。我正在构建Visual j#Console应用程序。要在我的项目中添加sqljdbc的引用,请右键单击我的项目中的“引用”标签,然后按“添加引用”。但任何人都可以告诉我如何在我的应用程序中添加我的sqljdbc.jar的引用,因为我无法找到任何方法将其添加到我的项目中。 –

+0

J#不完全是Java,所以我无法帮到你。 –