如何在Quarkus中使用GraalVM本机映像代理?

时间:2020-10-20 17:27:10

标签: quarkus

我试图弄清楚如何将GraalVM native image agent与通过mvn quarkus:dev运行的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)

1 个答案:

答案 0 :(得分:1)

默认情况下,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"