【问题标题】:Error: A language with id 'R' is not installed. Installed languages are: []错误:未安装 ID 为“R”的语言。安装的语言是:[]
【发布时间】:2020-05-23 00:14:15
【问题描述】:

我在 Docker 容器中运行的 Wildfly 中部署 JavaEE 应用程序。此应用程序使用 GraalVM 运行 R 脚本。环境设置为使用带有 Java 11 的 GraalVM,但是当我执行脚本时,我收到错误消息:“未安装 id 为 'R' 的语言。安装的语言是:[]。”那是我的 pom.xml:

<!-- R Language -->
    <dependency>
        <groupId>org.graalvm.sdk</groupId>
        <artifactId>graal-sdk</artifactId>
        <version>19.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.graalvm.truffle</groupId>
        <artifactId>truffle-api</artifactId>
        <version>19.3.1</version>
    </dependency>

也就是脚本调用,返回一个svg文件:

try(var ctx = org.graalvm.polyglot.Context.newBuilder().allowAllAccess(true).build()) {
        var source = Source.newBuilder("R", new File("/opt/jboss/plot.R")).build();
        return ok(ctx.eval(source).as(Function.class).apply(ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage())).build();
    }

知道发生了什么吗?

【问题讨论】:

  • 尝试使用以下命令安装 R:gu install R

标签: r docker wildfly graalvm java-ee-8


【解决方案1】:

如果您使用 GraalVM,您实际上并不需要 sdk 和 truffle 作为依赖项,并且将 Truffle 放在类路径上实际上会破坏某些假设并可能导致您的问题。尝试从依赖项中删除松露。

【讨论】:

  • 如果我从依赖项中删除松露,我会收到错误消息:“在类路径上找不到语言和多语言实现。确保 truffle-api.jar 在类路径上。”
  • 你真的在 GraalVM 上运行吗?
猜你喜欢
  • 1970-01-01
  • 2019-05-14
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 2013-06-16
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多