【问题标题】:JAR fails to load com.microsoft.sqlserver.jdbc.sqlserverdriverJAR 无法加载 com.microsoft.sqlserver.jdbc.sqlserverdriver
【发布时间】:2013-06-21 02:05:11
【问题描述】:

似乎有许多与此相关的类似问题,但没有一个能够为我提供任何帮助。我正在 SQL Server 上运行 Microsoft 的 JDBC 驱动程序(我正在使用 sqljdbc4.jar)并使用集成身份验证来访问我的数据库。连接代码sn-p如下:

String connectionUrl="jdbc:sqlserver://servername:1433;integratedSecurity=true;";

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection(connectionUrl);
}//catch, etc...

当我在 Eclipse 中运行项目时,它可以顺利启动。但是,当我运行 Maven 全新安装并将其打包到 .jar 中时,出现错误:

java.lang.ClassNotFoundException: Failure to load: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at launch.JarClassLoader.loadClass(JarClassLoader.java:964)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at ui.SearchWindow$1.run(SearchWindow.java:97)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

我已经尝试了其他帖子中发布的解决方案;我有一个指向.jar 的系统CLASSPATH 变量,它位于我的构建路径和运行时类路径中。也许问题就在我眼前。我最好的猜测是它与 Maven 有关,但我应该如何解决这个问题?

另外,如果我需要澄清任何问题,请告诉我;我很乐意这样做。

【问题讨论】:

  • 您是如何在项目中包含 SQL Server 驱动程序的?这个依赖是在 Maven 中声明的,还是你手动将它添加到 Eclipse 构建路径中?
  • 我手动将它添加到 Eclipse 构建路径中。是否也应该将其添加为依赖项?

标签: java sql-server-2008 jdbc classnotfoundexception


【解决方案1】:

在您的评论中,您确认您手动将其添加到构建路径而不是 maven POM。你确实需要添加一个依赖,否则Maven在构建时不会知道它。

并将依赖添加到 POM:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.1.1.jre8</version>
</dependency>

另见:

【讨论】:

  • 太棒了!这正是我所需要的。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 2021-08-17
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多