Данный релиз соответствует OpenJDK 19.0.2+9, номер версии Axiom JDK - 18
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 имеет следующие дополнения:
Пожалуйста, прочитайте примечания к релизу Oracle JDK 19.0.2 для получения дополнительной информации о функционале JDK 18. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 18.
Axiom поддерживается в следующих ОС:
Также известно, 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 под управлением следующих ОС:
Также есть успешный опыт запуска и работы на Debian (armhf) и Ubuntu (armhf).
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.
Axiom JDK 18 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.
Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.
Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:
* Не поддерживается на Raspberry Pi 4.
Дополнительная информация доступна на следующей wiki странице.
Axiom JDK 18 для armhf поставляется со встроенным модулем реализации API ввода-вывода (DIO) устройства OpenJDK. DIO предоставляет Java API для доступа к выводам Raspberry PI GPIO и для связи с периферийными устройствами:
Дополнительная информация доступна на следующей wiki странице.
С 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 |
---|---|
8299628 | BMP top-down images fail to load after JDK-8289336 |
8294779 | Improve FX pages |
8292112 | Better DragView handling |
8292105 | Improve Robot functionality |
8292097 | Better video decoding |
8289336 | Better platform image support |
8289343 | Better GL support |
8295723 | security/infra/wycheproof/RunWycheproof.java fails with Assertion Error |
8295687 | Better BMP bounds |
8293742 | Better Banking of Sounds |
8293734 | Improve BMP image handling |
8293717 | Objective view of ObjectView |
8293598 | Enhance InetAddress address handling |
8293554 | Enhanced DH Key Exchanges |
8288516 | Enhance font creation |
8287411 | Enhance DTLS performance |
8286496 | Improve Thread labels |
8286070 | Improve UTF8 representation |
8295447 | NullPointerException with invalid pattern matching construct in constructor call |
8296904 | Improve handling of macos xcode toolchain |
8297309 | Memory leak in ShenandoahFullGC |
8290164 | compiler/runtime/TestConstantsInError.java fails on riscv |
8297451 | ProcessHandleImpl should assert privilege when modifying reaper thread |
8296463 | Memory leak in JVM_StartThread with the integration of Virtual threads |
8297476 | Increase InlineSmallCode default from 1000 to 2500 for RISC-V |
8297147 | UnexpectedSourceImageSize test times out on slow machines when fastdebug is used |
8295264 | Fix PaX check on RISC-V |
8296602 | RISC-V: improve performance of copy_memory stub |
8297241 | Update sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java |
8297153 | sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails again |
8296945 | PublicMethodsTest is slow due to dependency verification with debug builds |
8296957 | One more cast in SAFE_SIZE_NEW_ARRAY2 |
8022403 | sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails |
8294538 | missing is_unloading() check in SharedRuntime::fixup_callers_callsite() |
8290964 | C2 compilation fails with assert “non-reduction loop contains reduction nodes” |
8285835 | SIGSEGV in PhaseIdealLoop::build_loop_late_post_work |
8287217 | C2: PhaseCCP: remove not visited nodes, prevent type inconsistency |
8292780 | misc tests failed “assert(false) failed: graph should be schedulable” |
8293996 | C2: fix and simplify IdealLoopTree::do_remove_empty_loop |
8296771 | RISC-V: C2: assert(false) failed: bad AD file |
8295414 | [Aarch64] C2: assert(false) failed: bad AD file |
8296632 | Write a test to verify the content change of TextArea sends TextEvent |
8285604 | closed sun/java2d/GdiRendering/ClipShapeRendering.java failed with “Incorrect color ffeeeeee instead of ff0000ff in pixel (100, 100)” |
8178698 | javax/sound/midi/Sequencer/MetaCallback.java failed with timeout |
8296448 | RISC-V: Fix temp usages of heapbase register killed by MacroAssembler::en/decode_klass_not_null |
8295926 | RISC-V: C1: Fix LIRGenerator::do_LibmIntrinsic |
8296970 | Remove sysThreadAvailableStackWithSlack from hotspot-symbols |
8286624 | Regression Test CoordinateTruncationBug.java fails on OL8.3 |
8296083 | javax/swing/JTree/6263446/bug6263446.java fails intermittently on a VM |
8296480 | java/security/cert/pkix/policyChanges/TestPolicy.java is failing |
8296733 | JFR: File Read event for RandomAccessFile::write(byte[]) is incorrect |
8296496 | Overzealous check in sizecalc.h prevents large memory allocation |
8296108 | (tz) Update Timezone Data to 2022f |
8296715 | CLDR v42 update for tzdata 2022f |
8296485 | BuildEEBasicConstraints.java test fails with SunCertPathBuilderException |
8288132 | Update test artifacts in QuoVadis CA interop tests |
8295469 | S390X: Optimized builds are broken |
8279941 | sun/security/pkcs11/Signature/TestDSAKeyLength.java fails when NSS version detection fails |
8292159 | TYPE_USE annotations on generic type arguments of record components discarded |
8295554 | Move the “sizecalc.h” to the correct location |
8294840 | langtools OptionalDependencyTest.java use File.pathSeparator |
8293701 | jdeps InverseDepsAnalyzer runs into NoSuchElementException: No value present |
8292695 | SIGQUIT and jcmd attaching mechanism does not work with signal chaining library |
8292899 | CustomTzIDCheckDST.java testcase failed on AIX platform |
8277970 | Test jdk/sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java fails with “tag mismatch” |
8292385 | assert(ctrl == kit.control()) failed: Control flow was added although the intrinsic bailed out |
8293816 | CI: ciBytecodeStream::get_klass() is not consistent |
8292158 | AES-CTR cipher state corruption with AVX-512 |
8295268 | Optimized builds are broken due to incorrect assert_is_rfp shortcuts |
8294307 | ISO 4217 Amendment 173 Update |
8029633 | Raw inner class constructor ref should not perform diamond inference |
8295173 | (tz) Update Timezone Data to 2022e |
8290900 | Build failure with Clang 14+ due to function warning attribute |
8294357 | (tz) Update Timezone Data to 2022d |
8292969 | Bad Thread Utilization in ForkJoinPool |
8291633 | Build failures with GCC 11, Alpine 3 due to incompatible casts from nullptr |
8290529 | C2: assert(BoolTest(btest).is_canonical()) failure |
8294517 | Update jdk19u fix version to 19.0.2 |
8288377 | [REDO] DST not applying properly with zone id offset set with TZ env variable |
8293834 | Update CLDR data following tzdata 2022c update |
8291508 | Fix some tests with “requires vm.jvmti & vm.continuations” |
8290496 | riscv: Fix build warnings-as-errors with GCC 11 |
8286314 | Trampoline not created for far runtime targets outside small CodeCache |
8288992 | AArch64: CMN should be handled the same way as CMP |
8290246 | test fails “assert(init != __null) failed: initialization not found” |
8290451 | Incorrect result when switching to C2 OSR compilation from C1 |
8290711 | assert(false) failed: infinite loop in PhaseIterGVN::optimize |
8290705 | StringConcat::validate_mem_flow asserts with “unexpected user: StoreI” |
8293044 | C1: Missing access check on non-accessible class |
8291775 | C2: assert(r != __null && r->is_Region()) failed: this phi must have a region |
8291599 | Assertion in PhaseIdealLoop::skeleton_predicate_has_opaque after JDK-8289127 |
8290781 | Segfault at PhaseIdealLoop::clone_loop_handle_data_uses |
8292756 | java.lang.AssertionError at at jdk.compiler/com.sun.tools.javac.code.Scope$ScopeImpl.leave(Scope.java:386) |
8293348 | A false cyclic inheritance error reported |
8293578 | Duplicate ldc generated by javac |
8293100 | RISC-V: Need to save and restore callee-saved FloatRegisters in StubGenerator::generate_call_stub |