Регистрация класса для создания экземпляров через Unsafe.allocateInstance в собственном образе graalvm - PullRequest
0 голосов
/ 14 февраля 2020

Собственный образ Graalvm моего приложения завершается с ошибкой во время выполнения следующего вызова метода:

Unsafe.allocateInstance(org.lwjgl.PointerBuffer.class);

за исключением:

java.lang.IllegalArgumentException: Class org.lwjgl.PointerBuffer is instantiated reflectively but was never registered. Register the class by using org.graalvm.nativeimage.hosted.RuntimeReflection
    at com.oracle.svm.core.graal.snippets.SubstrateAllocationSnippets.hubErrorStub(SubstrateAllocationSnippets.java:246)

Перед созданием собственного образа я запустил приложение с native-image-agent и он сгенерировал jsons конфигурации graalvm, но reflect-config.json не имел записи для org.lwjgl.PointerBuffer.

, даже если я вручную добавлю к reflect-config.json

{
  "name":"org.lwjgl.PointerBuffer",
  "allDeclaredFields":true,
  "allPublicConstructors" : true
  "allPublicFields": true,
  "allDeclaredMethods": true,
  "allPublicMethods": true
}

нативный изображение по-прежнему не удается с вышеупомянутым исключением. Есть ли способ заставить Unsafe.allocateInstance работать в собственном образе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...