1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/westinyang-java-graalvm-start

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 17:48 697711f

Введение

GraalVM — это оптимизированная среда выполнения для приложений, написанных на языке Java. Она позволяет ускорить выполнение кода и снизить потребление памяти. GraalVM использует технологию native-image для компиляции Java-кода в исполняемый файл, который может работать без виртуальной машины Java (JVM). Это делает приложения более быстрыми и эффективными.

Обзор модулей

В этом проекте представлены несколько модулей, которые демонстрируют возможности GraalVM и native-image:

  • cli-normal — простое консольное приложение без фреймворка.
  • desktop-javafx — приложение с графическим интерфейсом пользователя на основе JavaFX.
  • web-springboot — веб-приложение на базе Spring Boot.

Для каждого модуля приведены следующие данные:

  1. Описание.
  2. Используемая версия JDK.
  3. Версия GraalVM.
  4. Плагин Maven.
  5. Время запуска с использованием JVM.
  6. Время запуска с использованием native-image.
  7. Потребление памяти с использованием JVM.
  8. Потребление памяти с использованием native-image.
  9. Время компиляции с использованием native-image.
  10. Размер исполняемого файла после сжатия.

Также представлены новые модули:

  • web-jlhttp — простой встроенный HTTPServer.
  • web-nanohttpd — ещё один лёгкий встроенный HTTPServer.
  • cli-picocli — современный фреймворк для создания командных строк.
  • web-springboot3 — поддержка Spring Boot 3.0 для GraalVM native images.

Изменения плагинов

Описаны изменения в версиях GraalVM, а также используемых плагинах Maven для каждого из модулей.

Среда разработки

Представлены требования к среде разработки, включая операционную систему, IDE и версию GraalVM SDK.

Конфигурация среды (Windows)

Даны подробные инструкции по установке и настройке Graal VM и MSVC (Visual Studio 2019) на Windows. Все команды сборки (независимо от того, Maven это или Gradle) должны выполняться в командной строке Visual Studio 2019 с именем «x64 Native Tools Command Prompt for VS 2019». Быстрый доступ можно получить через меню «Пуск» или через окно поиска.

  • Для получения дополнительной информации рекомендуется обратиться к документации Microsoft.

Кроме того, вы можете выполнить команду cmd.exe /k "<путь к VS2019>\VC\Auxiliary\Build\vcvars64.bat из любого другого терминала, а затем начать использовать команды сборки.

Рекомендуется следующий окончательный вариант: Visual Studio 2019 настраивает среду MSVC и использует компилятор командной строки, чтобы можно было напрямую использовать инструменты компиляции MSVC на любом терминале.

Обязательно используйте этот окончательный вариант, иначе в последующих сборках проекта будет сложно работать, и каждый раз перед выполнением mvn package вам придётся выполнять cmd.exe /k "\VC\Auxiliary\Build\vcvars64.bat.

Конфигурация среды (Linux/Mac)

Linux

Скачайте GraalVM, настройте переменные среды. Помимо GraalVM вам потребуются следующие пакеты программного обеспечения:

— gcc версии 6 или выше; — ld версии 2.26 или выше.

Если вы используете Ubuntu 18, вам также необходимо установить следующие библиотеки (я уже протестировал их в подсистеме Linux):

sudo apt install pkg-config libgl-dev libglib2.0-dev libgtk-3-dev libpango1.0-dev libx11-dev libxtst-dev libasound2-dev libavcodec-dev libavformat-dev libavutil-dev

Для Ubuntu 20 также требуется установить пакет g++-multilib:

sudo apt install g++-multilib

В других дистрибутивах Linux при упаковке приложения проверьте, каких зависимостей не хватает, и установите их самостоятельно.

Mac

Выполните команду xcode-select --install.

Более подробные инструкции по настройке для разных платформ и зависимостям см. в следующих документах: — Install native image — для сборки Java-приложений; — Gluon documentation — для создания приложений JavaFx.

Советы: компания Gluon является вкладчиком проектов OpenJFX и GraalVM и предоставляет client-maven-plugin, который упрощает упаковку.

Замечания

После выполнения описанных шагов у вас будет настроенная среда разработки. Обратите внимание, что при настройке JDK в среде IDE IDEA следует указывать непосредственно на каталог bin GraalVM, а не на каталоги других JDK, чтобы избежать ошибок при компиляции.

Дополнительное чтение

GraalVM может не поддерживать кросс-компиляцию, но вы можете использовать Linux-подсистему Windows для компиляции исходного кода.

Планы на будущее

Возможно, в будущем будут добавлены дополнительные модули для других реализаций этих трёх приложений:

— cli-<библиотека, поддерживающая анализ аргументов> — для более быстрой разработки CLI-приложений; — desktop-<Swing/AWT> — другие реализации GUI; — web-<лёгкий HTTP-сервер без контейнеров> — другие веб-реализации.

Техническое общение

Q группа: 707416319.

Об авторе: I'm westinyang.

Справочные материалы

Официальные документы: — Введение в GraalVM; — Документация native-image; — Официальный сайт JavaFX на китайском языке — рекомендуется к прочтению; — Spring Native для GraalVM — рекомендуется к прочтению.

Статьи в интернете: — Как вы оцениваете проект GraalVM? — рекомендуется к прочтению; — GraalVM: Java в эпоху микросервисов — очень подробное объяснение; — Создание native image для приложений JavaFX; — Использование GraalVM для компиляции приложений JavaFX в Windows; — Компиляция Spring Boot как GraalVM Native Images — рекомендуется к прочтению, возможно, потребуется инструмент «Out of China»; — Сборка Spring Boot GraalVM Native Image с помощью native-image-maven-plugin — рекомендуется к прочтению, возможно, потребуется инструмент «Out of China»; — Построение Java-приложения с исходным кодом CLI с использованием Graalvm и Picocli — рекомендуется к прочтению.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/westinyang-java-graalvm-start.git
git@api.gitlife.ru:oschina-mirror/westinyang-java-graalvm-start.git
oschina-mirror
westinyang-java-graalvm-start
westinyang-java-graalvm-start
master