0

开发环境:

Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.6, vendor: Oracle Corporation, runtime: /home/linuxlp/opt/graalvm/graalvm-svm-linux-20.1.0-ea+28
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-31-generic", arch: "amd64", family: "unix"

我的应用程序将 Reactor Netty 用于客户端 http 休息服务。io.netty 库正在生成 INFO 错误,因为其中一些类在构建时被初始化,但它们需要在运行时初始化。有一个 Graalvm 标志 --initialize-at-run-time 我想尝试,但我不知道如何实现它。我尝试在配置文件“initruntime”中实现它并将该文件放在资源/META-INF/substrate/config 目录中,但这不起作用。client-debug0.log 文件的一部分包含在下面,显示了其中一个异常:

[Sun May 24 18:38:16 EDT 2020][INFO] [SUB] Error: Class initialization of io.netty.handler.ssl.JettyNpnSslEngine failed. Use the option --initialize-at-run-time=io.netty.handler.ssl.JettyNpnSslEngine to explicitly request delayed initialization of this class.
4

1 回答 1

0

您可以将此命令添加到本机映像命令列表中,如下所示:

<nativeImageArgs>
    <nativeImageArg>--initialize-at-build-time=com.mycompany.main.internal.NativeImageStaticInitializer</nativeImageArg>
</nativeImageArgs>
于 2020-05-25T08:39:59.213 回答