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

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

Axiom JDK 18.0.2+10

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.2 для получения дополнительной информации о функционале 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

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

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

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

Issue Description
8287175 Backout 8270480: Better path to expressing Xpaths
8285407 Improve Xalan supports
8285515 (dc) DatagramChannel.disconnect fails with “Invalid argument” on macOS 12.4
8287644 [18u] Backport of JDK-8240903 causes test errors
8286855 javac error on invalid jar should only print filename
8282080 Lambda deserialization fails for Object method references on interfaces
8285517 System.getenv() returns unexpected value if environment variable has non ASCII character
8287378 GHA: Update cygwin to fix issues in langtools tests on Windows
8286594 (zipfs) Mention paths with dot elements in ZipException and cleanups
8286444 javac errors after JDK-8251329 are not helpful enough to find root cause
8284094 Memory leak in invoker_completeInvokeRequest()
8287162 (zipfs) Performance regression related to support for POSIX file permissions
8240903 Add test to check that jmod hashes are reproducible
8287336 GHA: Workflows break on patch versions
8287119 Add Distrust.java to ProblemList
8287202 GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event
8286029 Add classpath exemption to globals_vectorApiSupport_***.S.inc
8285956 (fs) Excessive default poll interval in PollingWatchService
8282676 Improve subject handling
8286601 Mac Aarch: Excessive warnings to be ignored for build jdk
8285523 Improve test java/io/FileOutputStream/OpenNUL.java
8283469 Don’t use memset to initialize members in FileMapInfo and fix memory leak
8285921 serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine
8286283 assert(func2 == 0 && func3 == 0) failed: not unary
8286013 Incorrect test configurations for compiler/stable/TestStableShort.java
8285828 runtime/execstack/TestCheckJDK.java fails with zipped debug symbols
8284992 Fix misleading Vector API doc for LSHR operator
8286198 [linux] Fix process-memory information
8282219 jdk/java/lang/ProcessBuilder/Basic.java fails on AIX
8284848 C2: Compiler blackhole arguments should be treated as globally escaping
8283022 com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297
8284023 java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
8280956 Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y
8285686 Upgrade to FreeType 2.12.0
8284532 Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
8285394 Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
8282170 JVMTI SetBreakpoint metaspace allocation test
8284549 JFR: FieldTable leaks FieldInfoTable member
8284620 CodeBuffer may leak _overflow_arena
8283422 Create a new test for JDK-8254790
8284458 CodeHeapState::aggregate() leaks blob_name
8283725 Launching java with “-Xlog:gc=trace,safepoint=trace,class*=trace” crashes the JVM
8284808 change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2
8280476 [macOS] : hotspot arm64 bug exposed by latest clang
8284622 Update versions of some Github Actions used in JDK workflow
8282929 Localized monetary symbols are not reflected in toLocalizedPattern return value
8284866 Add test to JDK-8273056
8282042 [testbug] FileEncodingTest.java depends on default encoding
8284033 Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
8285445 cannot open file “NUL:”
8284920 Incorrect Token type causes XPath expression to return incorrect results
8284548 Invalid XPath expression causes StringIndexOutOfBoundsException
8284370 Improve zlib usage
8283379 Memory leak in FileHeaderHelper
8284369 TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
8284507 GHA: Only check test results if testing was not skipped
8284389 Improve stability of GHA Pre-submit testing by caching cygwin installer
8283217 Leak FcObjectSet in getFontConfigLocations() in fontpath.c
8281638 jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
8281318 Improve jfr/event/allocation tests reliability
8277893 Arraycopy stress tests
8282194 C1: Missing side effects of dynamic constant linkage
8281811 assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
8282045 When loop strip mining fails, safepoints are removed from loop anyway
8279822 CI: Constant pool entries in error state are not supported
8283408 Fix a C2 crash when filling arrays with unsafe
8282590 C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don’t process dead nodes
8283451 C2: assert(_base == Long) failed: Not a Long
8283187 C2: loop candidate for superword not always unrolled fully if superword fails
8275337 C1: assert(false) failed: live_in set of first block must be empty
8282231 x86-32: runtime call to SharedRuntime::ldiv corrupts registers
8272493 Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
8277055 Assert “missing inlining msg” with -XX:+PrintIntrinsics
8282172 CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
8282312 Minor corrections to evbroadcasti32x4 intrinsic on x86
8271055 Crash during deoptimization with “assert(bb->is_reachable()) failed: getting result from unreachable basicblock” with -XX:+VerifyStack
8279219 [REDO] C2 crash when allocating array of size too large
8280600 C2: assert(!had_error) failed: bad dominance
8281544 assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
8280901 MethodHandle::linkToNative stub is missing w/ -Xint
8280867 Cpuid1Ecx feature parsing is incorrect for AMD CPUs
8283641 Large value for CompileThresholdScaling causes assert
8282592 C2: assert(false) failed: graph should be schedulable
8282874 Bad performance on gather/scatter API caused by different IntSpecies of indexMap
8280799 РЎ2: assert(false) failed: cyclic dependency prevents range check elimination
8256368 Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
8271008 appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom
8281822 Test failures on non-DTrace builds due to incomplete DTrace* flags handling
8281266 [JVMCI] MetaUtil.toInternalName() doesn’t handle hidden classes correctly
8282887 Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows
8282628 Potential memory leak in sun.font.FontConfigManager.getFontConfig()
8282551 Properly initialize L32X64MixRandom state
8281181 Do not use CPU Shares to compute active processor count
8284012 Correction version-numbers.conf after merge
8283190 Improve MIDI processing
8283555 G1: Concurrent mark accesses uninitialized BOT of closed archive regions
8278381 [GCC 11] Address::make_raw() does not initialize rspec
8281771 Crash in java_lang_invoke_MethodType::print_signature
8281274 deal with ActiveProcessorCount in os::Linux::print_container_info
8278794 Infinite loop in DeflaterOutputStream.finish()
8278549 UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15
8283350 (tz) Update Timezone Data to 2022a
8281866 Enhance MethodHandle invocations
8278065 Refactor subclassAudits to use ClassValue
8280041 Retry loop issues in java.io.ClassCache
8277072 ObjectStreamClass caches keep ClassLoaders alive
8282444 Module finder incorrectly assumes default file system path-separator character
8282583 Update BCEL md to include the copyright notice
8281859 Improve class compilation
8281168 Micro-optimize VarForm.getMemberName for interpreter
8279668 x86: AVX2 versions of vpxor should be asserted
8272249 Better properties of loaded Properties
8279958 Provide configure hints for Alpine/apk package managers
8282225 GHA: Allow one concurrent run per PR only
8283017 GHA: Workflows break with update release versions
8281615 Deadlock caused by jdwp agent
8282295 SymbolPropertyEntry::set_method_type fails with assert
8283037 Update jdk18u fix version to 18.0.2
8274524 SSLSocket.close() hangs if it is called during the ssl handshake
8282397 createTempFile method of java.io.File is failing when called with suffix of spaces character
8270480 Better path to expressing Xpaths
8272243 Improve DER parsing
8282300 Throws NamingException instead of InvalidNameException after JDK-8278972
8277608 Address IP Addressing
8281093 JDK 11.0.14 violates Attribute-Value Normalization in the XML specification 1.0
8281388 Change wrapping of EncryptedPrivateKeyInfo
8278356 Improve file creation
8270504 Better Xpath expression handling
8272588 Enhanced recording parsing
8272594 Better record of recordings
8272261 Improve JFR recording file processing
8277672 Better invocation handler handling
8269938 Enhance XML processing passes redux
8278972 Improve URL supports
8272255 Completely handle MIDI files
8280674 Bump version numbers for July CPU
8282134 Certain regex can cause a JS trap in WebView
8280841 Update SQLite to 3.37.2
8286256 Update libxml2 to 2.9.14 8286257: Update libxslt to 1.1.35
8285475 Create release notes for 18.0.1
8285181 Change JavaFX release version to 18.0.2 in jfx18 branch
8283328 Update libxml2 to 2.9.13
Обратно на страницу загрузки
Команда 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