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

Spring Boot本地运行Jar报JNI错误(NoClassDefFoundError: javax/servlet/Servlet)

解决Java -jar运行时javax/servlet/Servlet缺失错误

问题根源

本地开发时IDE会自动提供Servlet API依赖,但打包成可执行Jar包后,若Servlet API的依赖范围被设置为provided,构建工具(Maven/Gradle)不会将其打包进Jar,导致运行时找不到该类。

具体修复步骤

1. 调整依赖配置

Maven项目(pom.xml)

  • 确保引入Spring Boot Web Starter,它会自动包含嵌入式Tomcat及所需Servlet API:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 若单独引入了Servlet API依赖,移除<scope>provided</scope>标签,或改为runtime:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

Gradle项目(build.gradle)

  • 引入Spring Boot Web Starter:
implementation 'org.springframework.boot:spring-boot-starter-web'
  • 若单独引入Servlet API,将provided改为implementation或runtimeOnly:
implementation 'javax.servlet:javax.servlet-api:3.1.0'

2. 确认打包插件配置

Maven

确保Spring Boot打包插件正确配置,保证Jar包是可执行的:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>你的Spring Boot版本号</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Gradle

应用Spring Boot插件并指定主类:

plugins {
    id 'org.springframework.boot' version '你的Spring Boot版本号'
    id 'io.spring.dependency-management' version '对应依赖管理版本'
    id 'java'
}

bootJar {
    mainClass = 'com.yourpackage.Application' // 替换为你的主类全路径
}

3. 额外验证项

  • 终端执行java -version和echo $JAVA_HOME,确认使用的是Java 8环境,避免Mac下终端与系统环境变量不一致。
  • 检查Jersey相关依赖是否正确引入,确保ServletContainer类能被打包进Jar:
<!-- Maven示例 -->
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</artifactId>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:35:26