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

SpringBoot使用GraalVM编译exe运行报NoSuchMethodException错误

问题关联判定

你构建阶段出现的Tomcat资源包丢失警告和运行时的Bean构造错误没有直接关联。运行报错的根本原因是GraalVM原生编译阶段未采集到org.springframework.context.annotation.ConfigurationClassPostProcessor的无参构造方法元数据,导致镜像运行时无法反射实例化该类。

解决方案
  • 修正Spring Native版本匹配
    你当前使用的Spring Boot 2.5.4对应适配的Spring Native正式版本为0.10.3,首先替换pom中spring-native的依赖版本,同时补充正式依赖仓库:

    <repositories>
        <repository>
            <id>spring-release</id>
            <name>Spring release</name>
            <url>https://repo.spring.io/release</url>
        </repository>
    </repositories>
    

    把spring-native的依赖版本改成0.10.3,去掉SNAPSHOT后缀。

  • 替换原生编译插件
    不要直接使用GraalVM官方的native-image-maven-plugin,改用Spring官方的AOT插件自动生成原生编译元数据,修改pom中build/plugins的配置为:

    <plugins>
        <plugin>
            <groupId>org.springframework.experimental</groupId>
            <artifactId>spring-aot-maven-plugin</artifactId>
            <version>0.10.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <builder>paketobuildpacks/builder:tiny</builder>
                    <env>
                        <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
                    </env>
                </image>
            </configuration>
        </plugin>
    </plugins>
    
  • 清理冗余配置
    删除你之前手动添加的大量--initialize-at-build-time参数,Spring AOT插件会自动处理类初始化配置,手动配置容易出现冲突导致类信息丢失。如果要消除Tomcat警告,只需要添加对应资源引入配置即可:

    --H:IncludeResourceBundles=org.apache.tomcat.util.threads.res.LocalStrings
    
  • 执行编译命令
    用以下命令执行原生编译:

    mvn clean package -Pnative
    

如果条件允许,建议直接升级到Spring Boot 3及以上版本,Spring 3已正式集成GraalVM原生编译支持,无需额外引入Spring Native实验依赖,稳定性和兼容性大幅提升。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:48:04