Java程序在Eclipse可运行,终端执行缺失MySQL驱动问题求助
解决终端运行Java程序时的com.mysql.cj.jdbc.Driver类找不到问题
问题原因
Eclipse会自动将Maven管理的依赖jar包加入项目类路径,所以运行正常;但终端直接执行java命令时,默认只加载当前目录的类文件,没有包含MySQL Connector/J驱动包,导致类找不到。
解决方案
1. 使用Maven Exec插件运行(推荐)
直接通过Maven插件启动程序,它会自动处理依赖类路径:
mvn exec:java -Dexec.mainClass="application.Program"
替换application.Program为你实际的主类全限定名。
2. 打包成包含依赖的可执行Jar
修改项目的pom.xml,添加maven-assembly-plugin配置,生成包含所有依赖的Jar包:
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <archive> <manifest> <!-- 指定主类 --> <mainClass>application.Program</mainClass> </manifest> </archive> <descriptorRefs> <!-- 打包包含所有依赖的Jar --> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
执行打包命令:
mvn package
打包完成后,在target目录下会生成类似[项目名]-jar-with-dependencies.jar的文件,运行它:
java -jar target/[项目名]-jar-with-dependencies.jar
替换[项目名]为你的实际项目名称。
3. 手动指定类路径运行
找到Maven本地仓库中MySQL驱动的Jar包路径(通常在~/.m2/repository/com/mysql/mysql-connector-java/[版本号]/下),运行时手动将其加入类路径:
java -cp ".:~/.m2/repository/com/mysql/mysql-connector-java/8.0.36/mysql-connector-java-8.0.36.jar" application.Program
- 注意:Linux系统用
:分隔类路径,.代表当前目录;替换版本号和主类名为实际值。
内容的提问来源于stack exchange,提问作者outragedline
相关产品推荐
相关产品推荐

