【问题标题】:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver despite the fact it is in dependencies of gradle.build filejava.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 尽管它在 gradle.build 文件的依赖项中
【发布时间】:2019-10-15 09:12:44
【问题描述】:

我已通过以下查询https://stackoverflow.com/search?q=com.microsoft.sqlserver.jdbc.SQLServerDriver%22阅读了前 10-15 个问题的答案
但是,我仍然不明白为什么它不起作用。
解决此问题的常用步骤:

  1. 确保将 jar 作为依赖项添加到您的构建/依赖项管理工具 (Ant/Maven (pom.xml)/Gradle(gralde.build)) 是的,就我而言:

    dependencies {
        compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.4.0.jre8'
        testCompile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.4.0.jre8'
    }
    

    build.gradle 文件中 gradle build 命令可以正常工作。

  2. 另一种解决方案是从 https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15 手动下载 jar 文件 然后将其添加到类路径中。这个解决方案是不可取的,我不想手动做一些必须由构建工具完成的事情。

所以问题是为什么我收到错误 "java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver" 而我看不到这个 jar在依赖项选项卡中

尽管在我的 build.gradle 文件的依赖项部分中提到了 jar 作为编译时依赖项和测试时依赖项:

仅供参考: 这就是我的代码中的调用方式:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

【问题讨论】:

  • 您是否尝试过重新导入您的 gradle 文件(单击 IDEA 的 gradle 选项卡中的重新导入按钮)。顺便说一句:如果您还将依赖项声明为 compile,则无需声明 testCompile
  • 另外,当你的问题是关于 Microsoft SQL Server 的时候,为什么你用 mysql 来标记这个?
  • 你说得对,我会修复标签
  • 我已经修复了标签。
  • @MarkRotteveel 或者,如果您愿意,我可以删除问题。

标签: java sql-server gradle intellij-idea jdbc


【解决方案1】:

看起来 IntelliJ 没有导入这些依赖项的添加。这通常意味着禁用自动导入。

您可以通过单击 IDEA 的 gradle 选项卡中的重新导入按钮来重新导入您的 gradle 文件。您可以通过单击 gradle 选项卡中的 Gradle Settings 按钮启用自动导入,并启用“在构建脚本文件发生更改时自动导入此项目”。

在单独的 not 上,如果您还声明一个依赖项为 compile,则无需声明 testCompile

【讨论】:

    猜你喜欢
    • 2017-01-05
    • 2018-08-12
    • 2021-11-23
    • 2021-11-25
    • 1970-01-01
    • 2017-04-07
    • 2015-05-03
    • 2017-01-12
    • 1970-01-01
    相关资源
    最近更新 更多