Данный релиз соответствует OpenJDK 17.0.3+7, номер версии Axiom JDK - 17
Axiom является сертифицированным Java SE 17-совместимым дистрибутивом OpenJDK 17, который работает на серверах (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 17.0.3 для получения дополнительной информации о функционале JDK 17. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 17.
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 17 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.
Axiom 17 содержит весь функционал, поддерживаемый OpenJDK 17.
С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.
Axiom JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 17 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Axiom Native Image Kit.
По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.
Axiom JDK 17 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.
Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.
Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:
* Не поддерживается на Raspberry Pi 4.
Дополнительная информация доступна на следующей wiki странице.
Axiom JDK 17 для 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
BellSoft Axiom содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.
Issue | Description |
---|---|
8281089 | JavaFX built with VS2019 and jlinked into JDK 11.x fails to start |
8280490 | Change JavaFX release version in jfx17u to 17.0.3 |
8278260 | JavaFX shared libraries not stripped on Linux or macOS |
8277457 | AccessControlException: access denied (“java.net.NetPermission” “getCookieHandler”) |
8242544 | CMD+ENTER key event crashes the application when invoked on dialog |
8203463 | [Accessibility, Narrator] NPE in TableView |
8197991 | Selecting many items in a TableView is very slow |
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 |
8274221 | More definite BER encodings |
8272261 | Improve JFR recording file processing |
8272255 | Completely handle MIDI files |
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 |
8278798 | Improve supported intrinsic |
8278356 | Improve file creation |
8272594 | Better record of recordings |
8269938 | Enhance XML processing passes redux |
8284920 | Incorrect Token type causes XPath expression to return empty result |
8282300 | Throws NamingException instead of InvalidNameException after JDK-8278972 |
8281388 | Change wrapping of EncryptedPrivateKeyInfo |
8278972 | Improve URL supports |
8278805 | Enhance BMP image loading |
8278449 | Improve keychain support |
8277672 | Better invocation handler handling |
8277233 | Improve ECDSA signature support |
8277227 | Better identification of OIDs |
8275151 | Improved Object Identification |
8272588 | Enhanced recording parsing |
8270504 | Better Xpath expression handling |
8282761 | XPathFactoryImpl remove setProperty and getProperty methods |
8277795 | ldap connection timeout not honoured under contention |
8276141 | XPathFactory set/getProperty method |
8274471 | Add support for RSASSA-PSS in OCSP Response |
8282219 | jdk/java/lang/ProcessBuilder/Basic.java fails on AIX |
8279669 | test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition |
8276841 | Add support for Visual Studio 2022 |
8272866 | java.util.random package summary contains incorrect mixing function in table |
8272996 | JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled |
8278185 | Custom JRE cannot find non-ASCII named module inside |
8281460 | Let ObjectMonitor have its own NMT category |
8278163 | –with-cacerts-src variable resolved after GenerateCacerts recipe setup |
8277383 | VM.metaspace optionally show chunk freelist details |
8271721 | Split gc/g1/TestMixedGCLiveThreshold into separate tests |
8277488 | Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022 |
8270117 | Broken jtreg link in “Building the JDK” page |
8279695 | [TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also |
8278080 | Add –with-cacerts-src=’user cacerts folder’ to enable deterministic cacerts generation |
8277762 | Allow configuration of HOTSPOT_BUILD_USER |
8274524 | SSLSocket.close() hangs if it is called during the ssl handshake |
8278346 | java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine |
8274171 | java/nio/file/Files/probeContentType/Basic.java failed on “Content type” mismatches |
8274562 | (fs) UserDefinedFileAttributeView doesn’t correctly determine if supported when using OverlayFS |
8273655 | content-types.properties files are missing some common types |
8279385 | [test] Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344 |
8280373 | Update Xalan serializer / SystemIDResolver to align with JDK-8270492 |
8272541 | Incorrect overflow test in Toom-Cook branch of BigInteger multiplication |
8278951 | containers/cgroup/PlainRead.java fails on Ubuntu 21.10 |
8272600 | (test) Use native “sleep” in Basic.java |
8271199 | Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key |
8277299 | STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits |
8281061 | [s390] JFR runs into assertions while validating interpreter frames |
8275330 | C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions |
8190748 | java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently |
8274750 | java/io/File/GetXSpace.java failed: ‘/dev’: 191488 != 190976 |
8273387 | remove some unreferenced gtk-related functions |
8279702 | [macosx] ignore xcodebuild warnings on M1 |
8277180 | Intrinsify recursive ObjectMonitor locking for C2 x64 and A64 |
8277449 | compiler/vectorapi/TestLongVectorNeg.java fails with release VMs |
8275643 | C2’s unaryOp vector intrinsic does not properly handle LongVector.neg |
8271056 | C2: “assert(no_dead_loop) failed: dead loop detected” due to cmoving identity |
8275847 | Scheduling fails with “too many D-U pinch points” on small method |
8274944 | AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info |
8275874 | [JVMCI] only support aligned reads in c2v_readFieldValue |
8271506 | Add ResourceHashtable support for deleting selected entries |
8278381 | [GCC 11] Address::make_raw() does not initialize rspec |
8279124 | VM does not handle SIGQUIT during initialization |
8277497 | Last column cell in the JTable row is read as empty cell |
8278604 | SwingSet2 table demo does not have accessible description set for images |
8278526 | [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column |
8275645 | [JVMCI] avoid unaligned volatile reads on AArch64 |
8280414 | Memory leak in DefaultProxySelector |
8273381 | Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm |
8269616 | serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error |
8280155 | [PPC64, s390] frame size checks are not yet correct |
8279924 | [PPC64, s390] implement frame::is_interpreted_frame_valid checks |
8280526 | x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1} |
8279076 | C2: Bad AD file when matching SqrtF with UseSSE=0 |
8279445 | Update JMH devkit to 1.34 |
8274753 | ZGC: SEGV in MetaspaceShared::link_shared_classes |
8274935 | dumptime_table has stale entry |
8251216 | Implement MD5 intrinsics on AArch64 |
8278241 | Implement JVM SpinPause on linux-aarch64 |
8275608 | runtime/Metaspace/elastic/TestMetaspaceAllocationMT2 too slow |
8276057 | Update JMH devkit to 1.33 |
8275082 | Update XML Security for Java to 2.3.0 |
8177814 | jdk/editpad is not in jdk TEST.groups |
8253197 | vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with “ERROR: DebuggeeSleepingThread: ThreadDeath lost” |
8236505 | Mark jdk/editpad/EditPadTest.java as @headful |
8272553 | several hotspot runtime/CommandLine tests don’t check exit code |
8275687 | runtime/CommandLine/PrintTouchedMethods test shouldn’t catch RuntimeException |
8278344 | sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output |
8273972 | Multi-core choke point in CMM engine (LCMSTransform.doTransform) |
8273438 | Enable parallelism in vmTestbase/metaspace/stressHierarchy tests |
8278389 | SuspendibleThreadSet::_suspend_all should be volatile/atomic |
8273433 | Enable parallelism in vmTestbase_nsk_sysdict tests |
8277503 | compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java failed with “OnSpinWaitInst with the expected value ‘isb’ not found.” |
8277137 | Set OnSpinWaitInst/OnSpinWaitInstCount defaults to “isb”/1 for Arm Neoverse N1 |
8273341 | Update Siphash to version 1.0 |
8269032 | Stringdedup tests are failing if the ergonomically select GC does not support it |
8186670 | Implement _onSpinWait() intrinsic for AArch64 |
8276766 | Enable jar and jmod to produce deterministic timestamped content |
8279453 | Disable tools/jar/ReproducibleJar.java on 32-bit platforms |
8279998 | PPC64 debug builds fail with “untested: RangeCheckStub: predicate_failed_trap_id” |
8280002 | jmap -histo may leak stream |
8277069 | [REDO] JDK-8276743 Make openjdk build Zip Archive generation “reproducible” |
8279833 | Loop optimization issue in String.encodeUTF8_UTF16 |
8273277 | C2: Move conditional negation into rc_predicate |
8279412 | [JVMCI] failed speculations list must outlive any nmethod that refers to it |
8271202 | C1: assert(false) failed: live_in set of first block must be empty |
8263567 | gtests don’t terminate the VM safely |
8269206 | A small typo in comment in test/lib/sun/hotspot/WhiteBox.java |
8278309 | [windows] use of uninitialized OSThread::_state |
8274506 | TestPids.java and TestPidsLimit.java fail with podman run as root |
8276764 | Enable deterministic file content ordering for Jar and Jmod |
8273967 | gtest os.dll_address_to_function_and_library_name_vm fails on macOS12 |
8273366 | [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12 |
8277846 | Implement fast-path for ASCII-compatible CharsetEncoders on ppc64 |
8273526 | Extend the OSContainer API pids controller with pids.current |
8269849 | vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with “OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects” |
8269087 | CheckSegmentedCodeCache test fails in an emulated-client VM |
8278871 | [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob |
8277447 | Hotspot C1 compiler crashes on Kotlin suspend fun with loop |
8279505 | Update documentation for RETRY_COUNT and REPEAT_COUNT |
8225559 | assertion error at TransTypes.visitApply |
8276654 | element-list order is non deterministic |
8279300 | [arm32] SIGILL when running GetObjectSizeIntrinsicsTest |
8273682 | Upgrade Jline to 3.20.0 |
8278758 | runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 |
8262134 | compiler/uncommontrap/TestDeoptOOM.java failed with “guarantee(false) failed: wrong number of expression stack elements during deopt” |
8269037 | jsig/Testjsig.java doesn’t have to be restricted to linux only |
8269523 | runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting ‘VM operation took too long’ |
8244602 | Add JTREG_REPEAT_COUNT to repeat execution of a test |
8272398 | Update DockerTestUtils.buildJdkDockerImage() |
8278384 | Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT |
8278020 | ~13% variation in Renaissance-Scrabble |
8279225 | [arm32] C1 longs comparison operation destroys argument registers |
8266490 | Extend the OSContainer API to support the pids controller of cgroups |
8279379 | GHA: Print tests that are in error |
8278987 | RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in write_sample_info |
8278627 | Shenandoah: TestHeapDump test failed |
8278824 | Uneven work distribution when scanning heap roots in G1 |
8278239 | vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d |
8277919 | OldObjectSample event causing bloat in the class constant pool in JFR recording |
8277342 | vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for |
8278104 | C1 should support the compiler directive ‘BreakAtExecute’ |
8274465 | Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures |
8273933 | [TESTBUG] Test must run without preallocated exceptions |
8278172 | java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux |
8275800 | Redefinition leaks MethodData::_extra_data_lock |
8273634 | [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java |
8239502 | [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails |
8275326 | C2: assert(no_dead_loop) failed: dead loop detected |
8274130 | C2: MulNode::Ideal chained transformations may act on wrong nodes |
8279011 | JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t |
8276662 | Scalability bottleneck in SymbolTable::lookup_common() |
8275536 | Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime |
8273895 | compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3 |
8272167 | AbsPathsInImage.java should skip *.dSYM directories |
8270874 | JFrame paint artifacts when dragged from standard monitor to HiDPI monitor |
8275610 | C2: Object field load floats above its null check resulting in a segfault |
8278099 | two sun/security/pkcs11/Signature tests failed with AssertionError |
8276623 | JDK-8275650 accidentally pushed “out” file |
8277328 | jdk/jshell/CommandCompletionTest.java failures on Windows |
8277441 | CompileQueue::add fails with assert(_last->next() == __null) failed: not last |
8274714 | Incorrect verifier protected access error message |
8274658 | ISO 4217 Amendment 170 Update |
8274795 | AArch64: avoid spilling and restoring r18 in macro assembler |
8277777 | [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad |
8276314 | [JVMCI] check alignment of call displacement during code installation |
8265150 | AsyncGetCallTrace crashes on ResourceMark |
8276177 | nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with “assert(def_ik->is_being_redefined()) failed: should be being redefined to get here” |
8275650 | Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11 |
8273704 | DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time |
8273162 | AbstractSplittableWithBrineGenerator does not create a random salt |
8273351 | bad tag in jdk.random module-info.java |
8247980 | Exclusive execution of java/util/stream tests slows down tier1 |
8272327 | Shenandoah: Avoid enqueuing duplicate string candidates |
8278115 | gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx |
8278116 | runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx |
8277992 | Add fast jdk_svc subtests to jdk:tier3 |
8278016 | Add compiler tests to tier{2,3} |
8277385 | Zero: Enable CompactStrings support |
8275586 | Zero: Simplify interpreter initialization |
8269175 | [macosx-aarch64] wrong CPU speed in hs_err file |
8278822 | Bump update version for OpenJDK: jdk-17.0.3 |