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

在Java 15应用中用GraalVM运行JS与Python的Pom依赖配置咨询

问题:在TomEE+Java15 Web应用中为GraalVM添加Python运行能力的依赖配置

我当前在基于TomEE运行的Java 15 Web应用中,使用GraalVM运行Javascript代码,运行状态良好。现在需要添加Python代码运行能力,想咨询pom.xml中需引入哪些依赖?我找到了org.graalvm.python相关依赖,当前pom已有如下依赖:

<dependency>
    <groupId>org.graalvm.js</groupId>
    <artifactId>js</artifactId>
    <version>22.1.0.1</version>
</dependency>
<dependency>
    <groupId>org.graalvm.js</groupId>
    <artifactId>js-scriptengine</artifactId>
    <version>22.1.0.1</version>
</dependency>

是否需要从graal.js切换为graal.sdk,以实现用同一引擎运行Javascript或Python?

回答

一、需引入的Python相关依赖

在pom.xml中添加以下与当前GraalVM版本(22.1.0.1)一致的Python核心依赖和ScriptEngine适配依赖:

<dependency>
    <groupId>org.graalvm.python</groupId>
    <artifactId>python</artifactId>
    <version>22.1.0.1</version>
</dependency>
<dependency>
    <groupId>org.graalvm.python</groupId>
    <artifactId>python-scriptengine</artifactId>
    <version>22.1.0.1</version>
</dependency>

二、是否需要切换为graal.sdk?

不需要替换现有graal.js依赖,建议补充引入graal-sdk来统一多语言引擎管理。graal-sdk提供了GraalVM多语言API的核心类(如Context),能让你通过同一套API创建和管理JavaScript、Python等不同语言的运行环境,避免依赖各语言的特定API。

添加以下同版本的graal-sdk依赖:

<dependency>
    <groupId>org.graalvm.sdk</groupId>
    <artifactId>graal-sdk</artifactId>
    <version>22.1.0.1</version>
</dependency>

添加后可通过统一的Context API运行JS和Python代码,示例:

import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Value;

// 创建支持JS和Python的上下文
try (Context context = Context.newBuilder("js", "python").build()) {
    // 执行JS代码
    Value jsResult = context.eval("js", "1 + 2");
    System.out.println("JS执行结果: " + jsResult.asInt());
    
    // 执行Python代码
    Value pyResult = context.eval("python", "1 + 2");
    System.out.println("Python执行结果: " + pyResult.asInt());
}

三、关键注意事项

  • 所有GraalVM相关依赖版本必须完全一致,避免版本冲突;
  • 应用必须运行在GraalVM环境下,普通JDK无法支持Python等非JS语言的运行;
  • 若继续使用ScriptEngine API,添加python-scriptengine后,仍可通过ScriptEngineManager获取Python引擎,保持和原有JS引擎使用方式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:07:09