问题标签 [graalvm-native-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1302 浏览

maven-plugin - 使用 native-image-maven-plugin 构建 GraalVM 错误

我正在尝试使用native-image-maven-plugin来构建 Java 项目,但出现以下错误:

0 投票
1 回答
378 浏览

java - 类不使用 GraalVM native-image 实现 Quarkus 项目的 org.graalvm.nativeimage.hosted.Feature 错误

我正在尝试使用 GraalVM 和 Maven 将示例Quarkus项目编译为本机映像。这是我的 Quarkus 服务的代码:

当我像往常一样编译它时,mvn package一切顺利。但是当我尝试将其编译为本机图像时,mvn package -Pnative我得到了这样的错误:

错误:类没有实现 org.graalvm.nativeimage.hosted.Feature:io.quarkus.runner.AutoFeature

是什么原因,我该如何解决?我使用 GraalVM 19.1.1 和 Quarkus 0.13.1。

0 投票
1 回答
504 浏览

graalvm - 捆绑的 Graal VM 与其他 VM + Graal JIT 的区别

IIUC,GraalVM 项目提供了新的 JIT 编译器,它应该适用于任何 JVM 发行版(OpenJDK、Oracle、Amazon Corretto),但是,GraalVM 网站还提供了基于 OpenJDK 的捆绑下载。那么,使用 Graal JIT 与其他发行版 VS 使用 Graal 自己的发行版有什么区别?Graal 是否在自己的发行版中进一步优化 JVM?

0 投票
1 回答
1891 浏览

java - 通过运行 Exec 任务构建 jar 后,在 gradle 中使用 graalvm 构建本机映像

我正在使用 Micronaut 并使用它的 cli 创建一个 java-cli-app。它没有额外的代码,通过运行 main 方法运行良好。执行 ./gradlew build 时,它还会创建一个包含所有依赖项的 jar。

我还可以使用 GraalVM 19.1.1 和 19.2.0 构建本机映像,并且运行良好。

当我通过手动运行任务来构建本机映像时

它也运行良好,

想做什么让它在创建 jar 时自动运行。

我已经尝试过的,

这不起作用(我知道这是旧的,我只是使用/尝试了 shouldRunAfter jar / assemble 的不同变体)

或者

或者

或者

我的 build.gradle 文件

当我运行特定任务时,它工作正常!

但是我无法在创建 jar 后运行它:(

我应该在上面的 build.gradle 中更改/添加什么以便它在 jar 创建后运行?

0 投票
1 回答
809 浏览

micronaut - GraalVM native-image jvm metrics

When running a native-image of a Micronaut application retrieving Prometheus metrics fails because it cannot get jvm metrics.

Of course native-image pre-compiles the application and includes only what's actually being used, but what kind of JVM is used when running a native-image? I assume it's also a greatly reduced version of the standard hotspot vm.

So is it even possible to get jvm metrics when running a native image or should other means be used to retrieve cpu and memory stats of the running application?

In this case I used Micronaut but I recon it is common for getting metrics from any native-image application with prometheus metrics.

To reproduce:

No with the native image, this exception is thrown:

0 投票
1 回答
1268 浏览

java - 在 Graal 中运行时反序列化程序失败

我有一个内置到 GraalVM 本机映像的 Micronaut 应用程序。当我从正常的角度(即没有 Graal)运行应用程序时,它运行完美。

但是,当我尝试从 Graal 运行时,在尝试将字符串反序列化为枚举时出现以下运行时异常:

作为参考,我的解串器如下:

我认为我可能需要为 Graal 添加一些自定义反射配置,但我不太确定。任何人都可以在这里阐明一下吗?

0 投票
1 回答
1180 浏览

java - Logback Groovy 配置和 GraalVM

我正在尝试为我的 GraalVM 编译的应用程序使用的 logback 使用 groovy 配置文件。

运行它并正常编译时,一切都很好,但是当我尝试针对 Graal 进行编译时,我遇到了一些我无法理解如何解决的问题。

因此,在没有任何特定配置传递给 Graal 的情况下,我在编译期间收到以下错误:

我尝试了在构建期间允许初始化类的非常懒惰的方法,方法是这样做:

--initialize-at-build-time=net.logstash.logback.encoder.LogstashEncoder

这只会导致其他各种与 logstash 相关的类需要此选项,因此我继续为整个包添加了一条规则,如下所示:

--initialize-at-build-time=net.logstash.logback

这并没有解决问题,而是在编译过程中导致以下错误:

我尝试了有关在构建或运行时允许和禁止初始化的各种规则排列,但没有一个起作用。

所以我的问题是,我应该如何克服这个问题?我试图找出导致初始化的类,但我现在无法这样做。

有没有人设法让 logback 使用 groovy 配置文件并成功编译成 GraalVM 映像?

0 投票
0 回答
366 浏览

java - [native-image][build-time] 错误:io.quarkus.runtime.graal.QuarkusReplacement$GenMain 的替换目标

当我尝试从 uberjar 构建本机映像时出现以下错误

运行以下命令:

从 uberjar 构建本机图像。

期望最终的原生图像,而不是收到以下错误消息:

有点不确定我是否错过了添加任何必要的 Quarkus 扩展。

0 投票
1 回答
163 浏览

graalvm - 使用本机图像编译的 Truffle 解释器 AOT 如何进行 PE?

使用native-image来改善 Truffle 解释器的启动时间似乎很常见。

我的理解是,使用 native-image 进行 AOT 编译将导致编译为在专用 SubstrateVM 中运行的本机代码的方法。

此外,Truffle 框架依赖于动态收集的分析信息来确定要部分评估哪些节点树。PE 通过获取相关节点的 JVM 字节码并在 Graal JIT 编译器的帮助下对其进行分析来工作。

这就是我感到困惑的地方。如果我们通过 native-image 传递一个 Truffle 解释器,每个节点的方法的代码将是本地代码。那么PE如何进行呢?事实上,Graal 甚至可以在 SubstrateVM 中使用吗?

0 投票
2 回答
619 浏览

java - 在 Travis CI 中进行原生镜像编译的 GraalVM

我有 Java 项目,我用 GraalVM native-image 编译为可执行二进制文件。我想用 Travis CI 为项目配置持续集成过程,这对我来说很有趣 - Travis CI 允许这样做吗?如何配置 .travis.yml 文件以使用 GraalVM 原生映像进行构建?