首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署到jar后获取java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

问部署到jar后获取java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
EN

Stack Overflow用户
提问于 2021-02-13 18:16:38
回答 2查看 64关注 0票数 0

这个问题已经问过很多次了,但这次略有不同。在我的例子中,我在Eclipse中运行时没有得到任何错误,它成功地运行并能够连接到MySQL。

我在Eclipse中有一个Maven项目,使用MySQL数据库和MySQL连接器/J进行连接。

然而,在部署到jar之后,我得到了这个错误。

我正在使用mvn clean install部署

我在pom.xml中添加了如下依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
    <scope>runtime</scope>
</dependency>

我使用以下命令来运行jar文件java -jar ./target/project.jar

但这给了我们

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

这是怎么回事?

EN

回答 2

Stack Overflow用户

发布于 2021-02-13 18:19:15

尝试将作用域从runtime更改为compile,或者完全删除字符串作用域。此字符串说明此依赖项不会在编译时加载。当您调用maven install时,会发生源代码编译,并且此依赖项不会添加到类路径中。

票数 1
EN

Stack Overflow用户

发布于 2021-02-13 18:21:44

从mysql maven依赖项中删除<scope>runtime</scope>,因为它使jar仅在运行时可用。要么根本不放置作用域,要么将其放在compile时间内。

执行mvn clean install。看起来不错。

代码语言:javascript
复制
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>    
</dependency>

此外,您还需要使用maven创建一个可执行的fat jar。由maven创建的普通jar是不可执行的。恐怕行不通。

用maven创建一个可执行的jar。请参阅here。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66183980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档