首页 > 文章列表 > Springboot Jar包瘦身后启动提示IllegalAccessError:原因及如何解决?

Springboot Jar包瘦身后启动提示IllegalAccessError:原因及如何解决?

377 2024-11-15

Springboot Jar包瘦身后启动提示IllegalAccessError:原因及如何解决?

springboot jar包瘦身后启动提示 illegalaccesserror 原因及解决方法

瘦身后jar包启动提示illegalaccesserror错误,原因可能是jar包中的类无法访问其父类,这是由于类加载器不一致造成的。

解决方法:

  1. 去掉spring-boot-maven-plugin插件

    去掉spring-boot-maven-plugin插件,直接使用maven-dependency-plugin进行jar包瘦身。

  2. 添加main-class和outputdir配置

    在maven-dependency-plugin的配置中,添加main-class和outputdir配置,指定main类和jar包输出目录。例如:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>lib/</classpathPrefix>
                    <useUniqueVersions>false</useUniqueVersions>
                </mainClass>
                <mainClass>com.example.MainClass</mainClass>
                </manifest>
            </archive>
            <outputDirectory>${boot-jar-output}</outputDirectory>
        </configuration>
    </plugin>

该方法可以确保jar包中的类使用正确的类加载器,从而解决illegalaccesserror错误。

来源:1729937295