Примечания к релизу Axiom JDK 18.0.1+12

Данный релиз соответствует OpenJDK 18.0.1+12, номер версии Axiom JDK - 18

Axiom JDK 18.0.1+12

Axiom является сертифицированным Java SE 18-совместимым дистрибутивом OpenJDK 18, который работает на серверах (Linux x86_64, Linux ARM64, Windows 64), настольных компьютерах (Windows 64, Windows 32, Mac, Linux x86_64) и встроенных устройствах (Linux ARM64, Linux ARMv7, включая Raspberry Pi 2 & 3 (ARMv6 hardfloat). Axiom JDK имеет следующие дополнения:

  • Версия для Linux x86_64 содержит экспериментальную поддержку ZGC.
  • В версии для Linux x86_64, ARMv8 и ARMv7 можно выбрать клиентскую виртуальную машину (Client VM), серверную виртуальную машину (Server VM) и минимальную виртуальную машину (Minimal VM).
  • Версия для Alpine Linux x86_64 построена с поддержкой musl.
  • Версии для Windows x86_64, Windows x86, Windows ARMv8, Mac, Linux x86_64, Linux x86 и Linux ARMv7 содержат OpenJFX 18.
  • Версия для Linux ARMv7 содержит Device IO API, скомпилированный для Raspberry Pi.

Пожалуйста, прочитайте примечания к релизу Oracle JDK 18.0.1 для получения дополнительной информации о функционале JDK 18. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 18.

Поддерживаемые серверные и десктопные конфигурации

Axiom поддерживается в следующих ОС:

  • Ubuntu Linux 16.04, 18.04 (x86, x86_64, ARMv7, ARMv8)
  • Debian Linux 8, 9 (x86, x86_64, ARMv7, ARMv8)
  • Red Hat, Oracle Linux и CentOS 8x, 6.x, 7.x (x86, x86_64, ARMv7, ARMv8)
  • Alpine Linux 3.7+
  • SUSE Linux Enterprise 12, 16, tumbleweed (x86_64, ARMv8)
  • Apple macOS 10.11+ (x86_64, ARMv8)
  • Microsoft Windows 2019, Windows 2016, Windows 2012 R2, Windows 10, Windows 8, Windows 7 (x86, x86_64, ARMv8)

Также известно, Axiom JDK работает с некоторыми другими дистрибутивами Linux и версиями Windows.

Примечание: Минимальная поддерживаемая версия ядра Linux - 2.6.18, версия GLIBC - 2.6. AxiomFX работает на всех поддерживаемых версиях Ubuntu, семействе Red Hat Linux начиная с версии 7.x и SUSE с бэкэндом GTK2.

Поддерживаемые конфигурации для встраиваемых применений

Axiom протестирован и сертифицирован на Raspberry Pi 2, 3 и 4 под управлением следующих ОС:

  • Raspbian OS (armhf)
  • OpenSUSE (armv8)

Также есть успешный опыт запуска и работы на Debian (armhf) и Ubuntu (armhf).

Поставка Axiom JDK 18

Axiom JDK 18 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.

Axiom 18 содержит весь функционал, поддерживаемый OpenJDK 18.

С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.

Axiom JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 18 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Axiom Native Image Kit.

По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.

AxiomFX для Raspberry Pi

Axiom JDK 18 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.

  • Java FX Graphics - поддерживается.
  • Java FX Controls - поддерживается.
  • Java FX Media - не поддерживается.
  • Java FX Webkit - не поддерживается.

Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.

Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:

  • -Dprism.order=sw - программный конвейер рендеринга. *
  • -Dprism.order=es2 - EGL-конвейер и аппаратное ускорение. *
  • -Djavafx.platform=gtk, если вы хотите запустить приложение AxiomFX, используя Axiom из X11.

* Не поддерживается на Raspberry Pi 4.

Дополнительная информация доступна на следующей wiki странице.

Device IO API для Raspberry Pi

Axiom JDK 18 для armhf поставляется со встроенным модулем реализации API ввода-вывода (DIO) устройства OpenJDK. DIO предоставляет Java API для доступа к выводам Raspberry PI GPIO и для связи с периферийными устройствами:

  • Универсальный ввод / вывод (GPIO).
  • Межинтегральная шина (I2C), последовательный интерфейс (SPI).
  • Универсальный асинхронный приемник / передатчик (UART).

Дополнительная информация доступна на следующей wiki странице.

Известные особенности

AxiomFX и EGL на ОС Raspbian

С 2017 года в Raspbian OS изменилось расположение бибилитек libEGL.so и libGLESv2.so для чипа Broadcom. Если вы хотите использовать аппаратное ускорение EGL, доступное в видеодрайверах Broadcom в AxiomFX, при работе в Raspbian OS, выполните следующую команду:

cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so

Безопасность

BellSoft Axiom содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.

Дефекты, исправленные в этом релизе

Issue Description
8282099 Cherry-pick WebKit 613.1 stabilization fixes (2)
8281711 Cherry-pick WebKit 613.1 stabilization fixes
8281459 WebKit 613.1 build broken on M1
8278980 Update WebKit to 613.1
8284920 Incorrect Token type causes XPath expression to return empty result
8284548 Unexpected StringIndexOutOfBoundsException can occur for invalid XPath expressions after JDK-8270504
8282397 createTempFile method of java.io.File is failing when called with suffix of spaces character
8282300 Throws NamingException instead of InvalidNameException after JDK-8278972
8281388 Change wrapping of EncryptedPrivateKeyInfo
8278972 Improve URL supports
8278805 Enhance BMP image loading
8278798 Improve supported intrinsic
8278449 Improve keychain support
8278356 Improve file creation
8277672 Better invocation handler handling
8277233 Improve ECDSA signature support
8277227 Better identification of OIDs
8275151 Improved Object Identification
8274221 More definite BER encodings
8272594 Better record of recordings
8272588 Enhanced recording parsing
8272261 Improve JFR recording file processing
8272255 Completely handle MIDI files
8270504 Better Xpath expression handling
8269938 Enhance XML processing passes redux
8281093 Violating Attribute-Value Normalization in the XML specification 1.0
8276990 Memory leak in invoker.c fillInvokeRequest() during JDI operations
8278186 org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method
8272996 JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled
8277488 Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022
8276819 javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free
8281275 Upgrading from 8 to 11 no longer accepts ‘/’ as filepath separator in gc paths
8281262 Windows builds in different directories are not fully reproducible
8281183 RandomGenerator:NextDouble() default behavior partially fixed by JDK-8280950
8280950 RandomGenerator:NextDouble() default behavior non conformant after JDK-8280550 fix
8280550 SplittableRandom#nextDouble(double,double) can return result >= bound
8277795 ldap connection timeout not honoured under contention
8278851 Correct signer logic for jars signed with multiple digestalgs
8280414 Memory leak in DefaultProxySelector
8280123 C2: Infinite loop in CMoveINode::Ideal during IGVN
8258814 Compilation logging crashes for thread suspension / debugging tests
8279412 [JVMCI] failed speculations list must outlive any nmethod that refers to it
8273139 C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency
8279225 [arm32] C1 longs comparison operation destroys argument registers
8279437 [JVMCI] exception in HotSpotJVMCIRuntime.translate can exit the VM
8280910 Update openjdk project in jcheck to “jdk-updates” for jdk18u
8280526 x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1}
8279445 Update JMH devkit to 1.34
8278472 Invalid value set to CANDIDATEFORM structure
8274751 Drag And Drop hangs on Windows
8267341 macos attempt_reserve_memory_at(arg1, arg2, true) failure
8279223 Define version in .jcheck/conf
8278384 Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT
8278869 Bump version numbers for OPENJDK 18.0.1
Обратно на страницу загрузки
Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67