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

Spring Boot Jar包无法运行:Maven启动正常但Jar执行报IllegalAccessException异常

解决Spring Boot Jar运行时IllegalAccessException问题

这个错误的核心根源是你的主类 com.cafe2.user.UserApplication 本身没有被声明为public——虽然main方法是public static的,但Spring Boot的Jar加载器(MainMethodRunner)通过反射调用主方法时,首先需要具备访问主类本身的权限。

用mvn spring-boot:run启动时,JVM是直接加载并运行主类,这时候对包级私有类(无public修饰符)的访问限制相对宽松;但打包成Jar后,Spring Boot使用自定义类加载器启动应用,这时候会严格执行类的访问权限检查,导致无法访问非public的主类,最终抛出这个异常。

具体解决步骤:

  • 打开UserApplication类,确保类声明带有public修饰符:
    package com.cafe2.user;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class UserApplication { // 这里必须添加public修饰符
        public static void main(String[] args) {
            SpringApplication.run(UserApplication.class, args);
        }
    }
    
  • 重新打包生成Jar文件:
    mvn clean package
    
  • 再次运行Jar文件,问题应该就能解决了。

另外也可以确认一下Spring Boot Maven插件的配置,确保主类被正确指定(不过你用Maven运行正常,这一步大概率没问题),插件配置示例参考:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.cafe2.user.UserApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:42:28