You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

程序在IntelliJ IDEA可运行,终端执行Jar报错:WebDriver类找不到

问题分析

你遇到的NoClassDefFoundError是因为Maven默认的maven-jar-plugin只打包了项目自身的代码,没有包含Selenium等第三方依赖。IntelliJ IDEA运行时会自动从本地Maven仓库加载依赖,所以能正常执行,但单独运行jar文件时,JVM找不到这些依赖类。

解决方案

要解决这个问题,需要使用Maven插件将所有依赖打包进一个可执行的"胖jar"里,推荐两种常用插件:

方案1:使用maven-assembly-plugin

修改你的pom.xml,将<build>部分替换为以下配置:

<build>
    <plugins>
        <!-- 指定主类信息 -->
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>org.example.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <!-- 打包所有依赖到胖jar -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.4.2</version>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>org.example.App</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

方案2:使用maven-shade-plugin(推荐,处理依赖冲突更友好)

将pom.xml的<build>部分替换为:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.4.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>org.example.App</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
执行步骤
  1. 执行打包命令:
mvn clean package
  1. 打包完成后,在target目录下会生成包含所有依赖的胖jar文件(比如sendmailer-1.0-SNAPSHOT-jar-with-dependencies.jar或sendmailer-1.0-SNAPSHOT.jar)。
  2. 运行这个胖jar:
java -jar target/[你的胖jar文件名].jar

内容的提问来源于stack exchange,提问作者zotov_l88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 23:47:21