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

GraalVM 17升级后SpringBoot报错:未安装js语言如何解决?

解决GraalVM JDK17下SpringBoot应用缺失JS语言引擎的问题

问题原因

GraalVM从适配JDK17的版本开始,默认不再将JavaScript等Polyglot语言组件包含在核心JDK分发包中——这和你之前使用的GraalVM JDK11不同,当时JS是默认内置的。所以升级后如果没有主动引入或安装JS组件,就会出现A language with id 'js' is not installed的报错。

解决方案

1. 本地开发/运行环境:用GraalVM自带工具安装JS组件

找到你本地GraalVM JDK17的bin目录,执行自带的gu(GraalVM Updater)工具命令:

gu install js

这个命令会自动下载并安装适配当前GraalVM版本的JavaScript语言组件,安装完成后重启应用即可。

2. Maven构建的SpringBoot应用:添加JS依赖到pom.xml

如果你的应用需要通过Maven打包部署,直接在pom.xml中添加GraalVM JS的运行时依赖:

<dependencies>
    <!-- GraalVM JavaScript 核心依赖 -->
    <dependency>
        <groupId>org.graalvm.js</groupId>
        <artifactId>js</artifactId>
        <version>21.3.0</version> <!-- 替换为和你GraalVM JDK17匹配的版本 -->
        <scope>runtime</scope>
    </dependency>
    <!-- 适配Java ScriptEngine API的依赖(如果你的代码用了ScriptEngine) -->
    <dependency>
        <groupId>org.graalvm.js</groupId>
        <artifactId>js-scriptengine</artifactId>
        <version>21.3.0</version> <!-- 版本要和上面保持一致 -->
        <scope>runtime</scope>
    </dependency>
</dependencies>

注意:version需要和你使用的GraalVM JDK17版本对应,比如你用的是GraalVM 22.3.0 for JDK17,就把版本改成22.3.0。

3. 原生镜像(Native Image)打包补充配置

如果你的应用是打包成GraalVM原生镜像,除了添加上述依赖,还要在原生镜像构建参数中指定初始化JS组件:
在pom.xml的native-maven-plugin中添加参数:

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <buildArgs>
            <buildArg>--initialize-at-build-time=org.graalvm.js</buildArg>
        </buildArgs>
    </configuration>
</plugin>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:43:11