这个问题已经问过很多次了,但这次略有不同。在我的例子中,我在Eclipse中运行时没有得到任何错误,它成功地运行并能够连接到MySQL。
我在Eclipse中有一个Maven项目,使用MySQL数据库和MySQL连接器/J进行连接。
然而,在部署到jar之后,我得到了这个错误。
我正在使用mvn clean install部署
我在pom.xml中添加了如下依赖项:
<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
这是怎么回事?
发布于 2021-02-13 18:19:15
尝试将作用域从runtime更改为compile,或者完全删除字符串作用域。此字符串说明此依赖项不会在编译时加载。当您调用maven install时,会发生源代码编译,并且此依赖项不会添加到类路径中。
发布于 2021-02-13 18:21:44
从mysql maven依赖项中删除<scope>runtime</scope>,因为它使jar仅在运行时可用。要么根本不放置作用域,要么将其放在compile时间内。
执行mvn clean install。看起来不错。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>此外,您还需要使用maven创建一个可执行的fat jar。由maven创建的普通jar是不可执行的。恐怕行不通。
用maven创建一个可执行的jar。请参阅here。
https://stackoverflow.com/questions/66183980
复制相似问题