加载JDBC驱动程序中的classNotFoundException
我是java的新手,我正在Netbeans 6.9.1 IDE上开发Java EE应用程序。 我必须将我的Java应用程序与SQL Server 2005连接。
为此,我已经下载了sqljdbc.jar文件并将其放入我的系统上的C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib
并在命令提示符下设置了类路径,就像这样
set classpath=.;C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar
并通过右键单击主项目并选择其属性选择库,在IDE中设置类路径。 然后在编译选项卡中添加了一个sqljdbc.jar
,但是当我执行这段代码时
import java.sql.*; /** * * @author abc */ public class DBConnection { public Connection dbConnect(String db_connect_string) { try { Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection(db_connect_string); System.out.println("connected"); return conn; } catch (Exception e) { System.out.println(e); e.printStackTrace(); return null; } } }
它在这行Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
上给出了ClassNotFound错误Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
您需要检查随SQL Server版本一起提供的JDBC驱动程序文档。 在旧的SQL Server 2000中 ,JDBC驱动程序类名称与您一样:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
但是,自SQL Server 2005以来,Microsoft更改了JDBC驱动程序类名:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
相应地修复它。
请注意,Netbeans和所有其他不错的Java程序都会忽略 CLASSPATH
环境变量。 忘记它,甚至不要尝试设置它,直到你理解它为什么存在以及它用于什么。
你能试一下吗:
set classpath=.;"C:\Program Files (x86)\Microsoft SQL Server\JDBC Drver\lib\sqljdbc.jar"
如果没有,请尝试使用短名称替换名称中带有空格的文件夹。 要获得短名称,请尝试
dir /-n
如果您使用Maven,可以尝试在pom.xml中添加以下内容:
com.microsoft.sqlserver sqljdbc4 4.0
- ClassNotFoundException在修改后的SimpleShortestPathsVertex上运行GiraphRunner
- 来自远程目录的Java Class.forName()
- 为什么我得到Class not found例外
- 启动java.util.concurrent.ExecutionException期间子容器失败
- classpath – 从命令行运行java程序
- ClassNotFoundException:twitter4j.conf.PropertyConfigurationFactory:Android
- ProGuard打破了JavaFX应用程序
- 使用JDBC连接到MS SQLServer时出现ClassNotFoundException
- Java类存在于类路径中,但启动失败,错误:无法找到或加载主类