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

Spring Boot GraalVM原生镜像报错:JRT文件系统已禁用

问题描述

正在将Spring Boot 2.x项目迁移至Spring Boot 3.1.3,并使用GraalVM的native profile编译。已启用Spring AOT、生成可达性元数据,成功构建原生镜像。
环境信息:

  • Windows 10 22H2 x64
  • OpenJDK 17.0.8
  • GraalVM CE 22.3.3
  • MSVC 14.16.27023

运行原生可执行文件启动速度正常,但调用HTTP端点时抛出错误,核心异常栈如下:

Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: JRT file system is disabled
解决方案

该错误源于GraalVM原生镜像默认禁用JRT文件系统,而WebJars的扫描逻辑(依赖ClassGraph)在运行时尝试访问JRT文件系统导致冲突,可通过以下方式解决:

方法1:启用JRT文件系统支持

在构建原生镜像时添加参数,允许JRT文件系统访问:

--enable-all-security-services --initialize-at-build-time=jdk.internal.module.SystemModuleFinders

Maven配置示例

在pom.xml的native插件中加入构建参数:

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <buildArgs>
            <buildArg>--enable-all-security-services</buildArg>
            <buildArg>--initialize-at-build-time=jdk.internal.module.SystemModuleFinders</buildArg>
        </buildArgs>
    </configuration>
</plugin>

Gradle配置示例

在build.gradle中配置原生镜像构建参数:

graalvmNative {
    binaries {
        main {
            buildArgs.add("--enable-all-security-services")
            buildArgs.add("--initialize-at-build-time=jdk.internal.module.SystemModuleFinders")
        }
    }
}

方法2:禁用WebJars自动扫描(项目未使用WebJars时)

如果项目实际不依赖WebJars,可直接禁用其资源解析器,避免触发扫描逻辑:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .resourceChain(false);
    }
}

方法3:升级ClassGraph版本

WebJars依赖的旧版ClassGraph对GraalVM原生镜像支持不足,可升级ClassGraph至v4.8.160+版本,新版本优化了原生镜像环境下的JRT文件系统处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:14:55