如何将 GraalVM Native Image Agent 与 Quarkus 一起使用?

How to use the GraalVM Native Image Agent with Quarkus?

我正在尝试通过 mvn quarkus:dev.

了解如何将 GraalVM native image agent 与 Quarkus 应用 运行 一起使用

我试过了运行:

mvn quarkus:dev -Djvm.args="-agentlib:native-image-agent=config-output-dir=native-image-config"

但是我得到错误:

ERROR: JDWP unable to get necessary JVMTI capabilities.

有什么建议吗?

我的 Java 版本:

openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment GraalVM CE 20.2.0 (build 11.0.8+10-jvmci-20.2-b03)
OpenJDK 64-Bit Server VM GraalVM CE 20.2.0 (build 11.0.8+10-jvmci-20.2-b03, mixed mode, sharing)

默认情况下 mvn quarkus:dev 使用 -Xrunjdwp 启用调试,类似于 -Xrunjdwp:transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n

然后您偶然发现了这个 answer 中描述的问题——简而言之,JDWP 和 JVMTI 似乎不能很好地协同工作。

您可以通过传递 -Ddebug=false 来禁用调试,然后它就可以工作了。像这样:

mvn quarkus:dev -Ddebug=false -Djvm.args="-agentlib:native-image-agent=config-output-dir=native-image-config"