
springboot jar包瘦身后启动提示 illegalaccesserror 的解决方案
当 springboot jar 包瘦身后,通过 java -jar 启动时,可能会遇到 java.lang.illegalaccesserror 错误。这个问题的原因通常是由于类加载器不一致导致的。
导致类加载器不一致的原因可能是 maven-jar-plugin 插件配置不当。
要解决此问题,可以采取以下步骤:
- 移除 spring-boot-maven-plugin 插件。
- 在 maven-dependency-plugin 插件中添加 main-class 和 outputdir 配置。
修改后的 maven-dependency-plugin 配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
</archive>
<!-- 指定输出 jar 目录 -->
<outputDirectory>${boot-jar-output}</outputDirectory>
<!-- 指定 main class -->
<mainClass>com.example.demo.DemoApplication</mainClass>
</configuration>
</plugin>通过上述配置,可以确保 maven-jar-plugin 正确打包所需的依赖并设置适当的 main class 和输出目录,从而解决类加载器不一致的问题。










