Создание простого образца Graal Native с помощью Maven

После долгого, наконец, я смог создать простой "HelloWorld" с встроенным Graal через командную строку, используя командную строку разработчика для VS 2017 в этой среде:

  • Грааль ВМ: graalvm-ce-java11-19.3.2
  • Windows SDK: Windows SDK 10.

Я не могу заставить его работать с другими версиями graal (graalvm-ce-java11-20.2.0-dev, graalvm-ce-java8-20.2.0-dev..), Возможно, для особенности локальной среды разработки (невозможность использования Windows 7 SDK, например ...)

Мои следующие цели - создать простые исполняемые файлы, но с более сложной зависимостью, например. следующий пример vertx

https://how-to.vertx.io/graal-native-image-howto/

В идеале я намерен создать его с помощью плагина maven. Если это невозможно, в качестве альтернативы создайте толстую банку с последующим преобразованием ее в родную

1. Использование native-image-maven-plugin

  <groupId>org.graalvm.nativeimage</groupId>
  <artifactId>native-image-maven-plugin</artifactId>
  <version>19.3.2</version>

Ошибка: не удалось выполнить цель org.graalvm.nativeimage: native-image-maven-plugin: 19.3.2: native-image (по умолчанию) в проекте demo01GraalTestClasses: создание образа на Java 11+ без native- для изображения требуется MAVEN_OPTS = '- add-exports = java.base / jdk.internal.module = ALL-UNNAMED' -> [Help 1] [ERROR]

2. С помощью командной строки после создания толстой банки

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment GraalVM CE 19.3.2 (build 11.0.7+10-jvmci-19.3-b10)
OpenJDK 64-Bit Server VM GraalVM CE 19.3.2 (build 11.0.7+10-jvmci-19.3-b10, mixed mode, sharing)

[ **Important** ] call vcvars64.bat !

**native-image.cmd --verbose --static --no-fallback -H:+ReportExceptionStackTraces -jar demoGraalTestClasses.jar demo**



**Error**:

[demo:4920]    classlist:   3,964.94 ms
[demo:4920]        (cap):  38,810.44 ms
[demo:4920]        setup:  41,140.72 ms
[demo:4920]     analysis:  18,151.19 ms
Fatal error: com.oracle.svm.core.util.VMError$HostedError: class java.net.TwoStacksPlainSocketImpl not found

Есть идеи ??? Спасибо!


person Azimuts    schedule 15.05.2020    source источник


Ответы (1)


Я столкнулся с той же ошибкой без разрешения. Кажется, что это больше проблема с плагином, чем с Windows. Я отказался и подготовил виртуальную машину ubuntu, запустил собственный образ в тех же условиях, что и в Windows (pom.xml, java11, graalvm 20.0.0), и это сработало.

Так что я либо ждал следующего выпуска плагина, либо пытался пойти по пути Linux. Не ждите здесь быстрых советов.

person Zdenek T.    schedule 18.05.2020