Данный релиз соответствует OpenJDK 21.0.1+12, номер версии Axiom JDK - 21
Axiom является сертифицированным Java SE 21-совместимым дистрибутивом OpenJDK 21, который работает на серверах (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 21.0.1 для получения дополнительной информации о функционале JDK 21. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 21.
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 21 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.
Axiom JDK 21 содержит весь функционал, поддерживаемый OpenJDK 21.
С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.
Axiom JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 21 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Axiom Native Image Kit.
По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.
Axiom JDK 21 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.
Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.
Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:
* Не поддерживается на Raspberry Pi 4.
Дополнительная информация доступна на следующей wiki странице.
Axiom JDK 21 для 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 |
---|---|
8240567 | MethodTooLargeException thrown while creating a jlink image |
8284772 | GHA: Use GCC Major Version Dependencies Only |
8286503 | Enhance security classes |
8293114 | JVM should trim the native heap |
8296581 | Better system proxy support |
8297856 | Improve handling of Bidi characters |
8299658 | C1 compilation crashes in LinearScan::resolve_exception_edge |
8302017 | Allocate BadPaddingException only if it will be thrown |
8303815 | Improve Metaspace test speed |
8304008 | Update README.md and CONTRIBUTING.md for jfx update repos |
8304954 | SegmentedCodeCache fails when using large pages |
8307766 | Linux: Provide the option to override the timer slack |
8308042 | [macos] Developer ID Application Certificate not picked up by jpackage if it contains UNICODE characters |
8308047 | java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java timed out and also had jcmd pipe errors |
8308184 | Launching java with large number of jars in classpath with java.protocol.handler.pkgs system property set can lead to StackOverflowError |
8308474 | DSA does not reset SecureRandom when initSign is called again |
8308609 | java/lang/ScopedValue/StressStackOverflow.java fails with “-XX:-VMContinuations” |
8309032 | jpackage does not work for module projects unless –module-path is specified |
8309088 | security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java fails |
8309214 | sun/security/pkcs11/KeyStore/CertChainRemoval.java fails after 8301154 |
8309475 | Test java/foreign/TestByteBuffer.java fails: a problem with msync (aix) |
8309502 | RISC-V: String.indexOf intrinsic may produce misaligned memory loads |
8309591 | Socket.setOption(TCP_QUICKACK) uses wrong level |
8309746 | Reconfigure check should include make/conf/version-numbers.conf |
8309889 | [s390] Missing return statement after calling jump_to_native_invoker method in generate_method_handle_dispatch. |
8309966 | Enhanced TLS connections |
8310106 | sun.security.ssl.SSLHandshake.getHandshakeProducer() incorrectly checks handshakeConsumers |
8310171 | Bump version numbers for 21.0.1 |
8310211 | serviceability/jvmti/thread/GetStackTrace/getstacktr03/getstacktr03.java failing |
8310233 | Fix THP detection on Linux |
8310268 | RISC-V: misaligned memory access in String.Compare intrinsic |
8310321 | make JDKOPT_CHECK_CODESIGN_PARAMS more verbose |
8310586 | ProblemList java/lang/ScopedValue/StressStackOverflow.java#default with virtual threads on linux-all |
8310681 | Update WebKit to 616.1 |
8310687 | 8303215 is incomplete |
8310873 | Re-enable locked_create_entry symbol check in runtime/NMT/CheckForProperDetailStackTrace.java for RISC-V |
8311026 | Some G1 specific tests do not set -XX:+UseG1GC |
8311033 | [macos] PrinterJob does not take into account Sides attribute |
8311097 | Synchron XMLHttpRequest not receiving data |
8311160 | [macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem |
8311249 | Remove unused MemAllocator::obj_memory_range |
8311285 | report some fontconfig related environment variables in hs_err file |
8311511 | Improve description of NativeLibrary JFR event |
8311592 | ECKeySizeParameterSpec causes too many exceptions on third party providers |
8311682 | Change milestone to fcs for all releases |
8311862 | RISC-V: small improvements to shift immediate instructions |
8311917 | MAP_FAILED definition seems to be obsolete in src/java.desktop/unix/native/common/awt/fontpath.c |
8311921 | Inform about MaxExpectedDataSegmentSize in case of pthread_create failures on AIX |
8311923 | TestIRMatching.java fails on RISC-V |
8311926 | java/lang/ScopedValue/StressStackOverflow.java takes 9mins in tier1 |
8311955 | c++filt is now ibm-llvm-cxxfilt when using xlc17 / clang on AIX |
8311981 | Test gc/stringdedup/TestStringDeduplicationAgeThreshold.java#ZGenerational timed out |
8312127 | FileDescriptor.sync should temporarily increase parallelism |
8312128 | Change JavaFX release version to 21.0.1 in jfx21u |
8312180 | (bf) MappedMemoryUtils passes incorrect arguments to msync (aix) |
8312182 | THPs cause huge RSS due to thread start timing issue |
8312248 | Enhanced archival support redux |
8312394 | [linux] SIGSEGV if kernel was built without hugepage support |
8312395 | Improve assertions in growableArray |
8312401 | SymbolTable::do_add_if_needed hangs when called in InstanceKlass::add_initialization_error path with requesting length exceeds max_symbol_length |
8312489 | Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar |
8312525 | New test runtime/os/TestTrimNative.java#trimNative is failing: did not see the expected RSS reduction |
8312535 | MidiSystem.getSoundbank() throws unexpected SecurityException |
8312555 | Ideographic characters aren’t stretched by AffineTransform.scale(2, 1) |
8312573 | Failure during CompileOnly parsing leads to ShouldNotReachHere |
8312585 | Rename DisableTHPStackMitigation flag to THPStackMitigation |
8312591 | GCC 6 build failure after JDK-8280982 |
8312619 | Strange error message when switching over long |
8312620 | WSL Linux build crashes after JDK-8310233 |
8312625 | Test serviceability/dcmd/vm/TrimLibcHeapTest.java failed: RSS use increased |
8312909 | C1 should not inline through interface calls with non-subtype receiver |
8312976 | MatchResult produces StringIndexOutOfBoundsException for groups outside match |
8312984 | javac may crash on a record pattern with too few components |
8313081 | MonitoringSupport_lock should be unconditionally initialized after 8304074 |
8313177 | Web Workers timeout with Webkit 616.1 |
8313181 | Enabling modern media controls on webkit 616.1 does not load button images on HTML5 video Element |
8313248 | C2: setScopedValueCache intrinsic exposes nullptr pre-values to store barriers |
8313262 | C2: Sinking node may cause required cast to be dropped |
8313307 | java/util/Formatter/Padding.java fails on some Locales |
8313312 | Add missing classpath exception copyright header |
8313323 | javac -g on a java file which uses unnamed variable leads to ClassFormatError when launching that class |
8313402 | C1: Incorrect LoadIndexed value numbering |
8313428 | GHA: Bump GCC versions for July 2023 updates |
8313576 | GCC 7 reports compiler warning in bundled freetype 2.13.0 |
8313602 | increase timeout for jdk/classfile/CorpusTest.java |
8313626 | C2 crash due to unexpected exception control flow |
8313657 | com.sun.jndi.ldap.Connection.cleanup does not close connections on SocketTimeoutErrors |
8313676 | Amend TestLoadIndexedMismatch test to target intrinsic directly |
8313678 | SymbolTable can leak Symbols during cleanup |
8313691 | use close after failing os::fdopen in vmError and ciEnv |
8313701 | GHA: RISC-V should use the official repository for bootstrap |
8313707 | GHA: Bootstrap sysroots with –variant=minbase |
8313711 | Cherry-pick WebKit 616.1 stabilization fixes |
8313752 | InstanceKlassFlags::print_on doesn’t print the flag names |
8313765 | Invalid CEN header (invalid zip64 extra data field size) |
8313796 | AsyncGetCallTrace crash on unreadable interpreter method pointer |
8313856 | Replace VLA with malloc in pango |
8313874 | JNI NewWeakGlobalRef throws exception for null arg |
8313900 | Possible NULL pointer access in NativeAudioSpectrum and NativeVideoBuffer |
8313901 | [TESTBUG] test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java fails with java.lang.VirtualMachineError |
8313904 | [macos] All signing tests which verifies unsigned app images are failing |
8314020 | Print instruction blocks in byte units |
8314024 | SIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info |
8314063 | The socket is not closed in Connection::createSocket when the handshake failed for LDAP connection |
8314117 | RISC-V: Incorrect VMReg encoding in RISCV64Frame.java |
8314118 | Update JMH devkit to 1.37 |
8314139 | TEST_BUG: runtime/os/THPsInThreadStackPreventionTest.java could fail on machine with large number of cores |
8314144 | gc/g1/ihop/TestIHOPStatic.java fails due to extra concurrent mark with -Xcomp |
8314212 | Crash when loading cnn.com in WebView |
8314216 | Case enumConstant, pattern compilation fails |
8314262 | GHA: Cut down cross-compilation sysroots deeper |
8314423 | Multiple patterns without unnamed variables |
8314426 | runtime/os/TestTrimNative.java is failing on slow machines |
8314501 | Shenandoah: sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java fails |
8314517 | some tests fail in case ipv6 is disabled on the machine |
8314618 | RISC-V: -XX:MaxVectorSize does not work as expected |
8314649 | Enhanced archival support redux |
8314656 | GHA: No need for Debian ports keyring installation after JDK-8313701 |
8314679 | SA fails to properly attach to JVM after having just detached from a different JVM |
8314730 | GHA: Drop libfreetype6-dev transitional package in favor of libfreetype-dev |
8314850 | SharedRuntime::handle_wrong_method() gets called too often when resolving Continuation.enter |
8314960 | Add Certigna Root CA - 2 |
8315020 | The macro definition for LoongArch64 zero build is not accurate. |
8315051 | jdk/jfr/jvm/TestGetEventWriter.java fails with non-JVMCI GCs |
8315534 | Incorrect warnings about implicit annotation processing |
8315657 | Application window not activated in macOS 14 Sonoma |
8316879 | RegionMatches1Tests fails if CompactStrings are disabled after JDK-8302163 |
8317121 | vector_masked_load instruction is moved too early after JDK-8286941 |