Данный релиз соответствует OpenJDK 17.0.8+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.8 для получения дополнительной информации о функционале 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
Axiom JDK содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.
Issue | Description |
---|---|
8308682 | Enhance AES performance |
8305312 | Enhanced path handling |
8304468 | Better array usages |
8304460 | Improve array usages |
8303376 | Better launching of JDI |
8302483 | Enhance ZIP performance |
8302475 | Enhance HTTP client file downloading |
8300596 | Enhance Jar Signature validation |
8300285 | Enhance TLS data handling |
8298676 | Enhanced Look and Feel |
8296565 | Enhanced archival support |
8294323 | Improve Shared Class Data |
8311467 | [17u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 17.0.8 |
8303465 | KeyStore of type KeychainStore, provider Apple does not show all trusted certificates |
8308884 | [17u/11u] Backout JDK-8297951 |
8287876 | The recently de-problemlisted TestTitledBorderLeak test is unstable |
8308880 | [17u] micro bench ZoneStrings missed in backport of 8278434 |
8293492 | ShenandoahControlThread missing from hs-err log and thread dump |
8301637 | ThreadLocalRandom.current().doubles().parallel() contention |
8293295 | Add type check asserts to java_lang_ref_Reference accessors |
8294183 | AArch64: Wrong macro check in SharedRuntime::generate_deopt_blob |
8274243 | Implement fast-path for ASCII-compatible CharsetEncoders on aarch64 |
8303809 | Dispose context in SPNEGO NegotiatorImpl |
8301119 | Support for GB18030-2022 |
8286331 | jni_GetStringUTFChars() uses wrong heap allocator |
8286346 | 3-parameter version of AllocateHeap should not ignore AllocFailType |
8301661 | Enhance os::pd_print_cpu_info on macOS and Windows |
8292713 | Unsafe.allocateInstance should be intrinsified without UseUnalignedAccesses |
8283520 | JFR: Memory leak in dcmd_arena |
8307128 | Open source some drag and drop tests 4 |
8307799 | Newly added java/awt/dnd/MozillaDnDTest.java has invalid jtreg @requires clause |
8294717 | (bf) DirectByteBuffer constructor will leak if allocating Deallocator or Cleaner fails with OOME |
8300939 | sun/security/provider/certpath/OCSP/OCSPNoContentLength.java fails due to network errors |
8275287 | Relax memory ordering constraints on updating instance class and array class counters |
8307347 | serviceability/sa/ClhsdbDumpclass.java could leave files owned by root on macOS |
8274615 | Support relaxed atomic add for linux-aarch64 |
8307135 | java/awt/dnd/NotReallySerializableTest/NotReallySerializableTest.java failed |
8227060 | Optimize safepoint cleanup subtask order |
8306640 | Open source several AWT TextArea related tests |
8308554 | [17u] Fix commit of 8286191. vm.musl was not removed from ExternalEditorTest |
8306752 | Open source several container and component AWT tests |
8306755 | Open source few Swing JComponent and AbstractButton tests |
8306683 | Open source several clipboard and color AWT tests |
8306652 | Open source AWT MenuItem related tests |
8306409 | Open source AWT KeyBoardFocusManger, LightWeightComponent related tests |
8306850 | Open source AWT Modal related tests |
8306072 | Open source several AWT MouseInfo related tests |
8307080 | Open source some more JComboBox jtreg tests |
8306133 | Open source few AWT Drag & Drop related tests |
8306466 | Open source more AWT Drag & Drop related tests |
8306681 | Open source more AWT DnD related tests |
8306955 | Open source several JComboBox jtreg tests |
8306432 | Open source several AWT Text Component related tests |
8306954 | Open source five Focus related tests |
8307134 | Add GTS root CAs |
8268582 | javadoc throws NPE with –ignore-source-errors option |
8287854 | Dangling reference in ClassVerifier::verify_class |
8275233 | Incorrect line number reported in exception stack trace thrown from a lambda expression |
8296343 | CPVE thrown on missing content-length in OCSP response |
8261495 | Shenandoah: reconsider update references memory ordering |
8297154 | Improve safepoint cleanup logging |
8306753 | Open source several container AWT tests |
8307378 | Allow collectors to provide specific values for GC notifications’ actions |
8284331 | Add sanity check for signal handler modification warning. |
8276058 | Some swing test fails on specific CI macos system |
8277407 | javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java fails to compile after JDK-8276058 |
8304350 | Font.getStringBounds calculates wrong width for TextAttribute.TRACKING other than 0.0 |
8306489 | Open source AWT List related tests |
8307133 | Open source some JTable jtreg tests |
8306943 | Open source several dnd AWT tests |
8307381 | Open Source JFrame, JIF related Swing Tests |
8306871 | Open source more AWT Drag & Drop tests |
8306941 | Open source several datatransfer and dnd AWT tests |
8307130 | Open source few Swing JMenu tests |
8307346 | Add missing gc+phases logging for ObjectCount(AfterGC) JFR event collection code |
8307425 | Socket input stream read burns CPU cycles with back-to-back poll(0) calls |
8306996 | Open source Swing MenuItem related tests |
8248001 | javadoc generates invalid HTML pages whose ftp:// links are broken |
8304760 | Add 2 Microsoft TLS roots |
8299544 | Improve performance of CRC32C intrinsics (non-AVX-512) for small inputs |
8295974 | jni_FatalError and Xcheck:jni warnings should print the native stack when there are no Java frames |
8305975 | Add TWCA Global Root CA |
8282201 | Consider removal of expiry check in VerifyCACerts.java test |
8305088 | SIGSEGV in Method::is_method_handle_intrinsic |
8304054 | Linux: NullPointerException from FontConfiguration.getVersion in case no fonts are installed |
8304867 | Explicitly disable dtrace for ppc builds |
8297587 | Upgrade JLine to 3.22.0 |
8301216 | ForkJoinPool invokeAll() ignores timeout |
8296934 | Write a test to verify whether Undecorated Frame can be iconified or not |
8292206 | TestCgroupMetrics.java fails as getMemoryUsage() is lower than expected |
8307331 | Correctly update line maps when class redefine rewrites bytecodes |
8305993 | Add handleSocketErrorWithMessage to extend nio Net.c exception message |
8305690 | [X86] Do not emit two REX prefixes in Assembler::prefix |
8299570 | [JVMCI] Insufficient error handling when CodeBuffer is exhausted |
8302508 | Add timestamp to the output TraceCompilerThreads |
8297450 | ScaledTextFieldBorderTest.java fails when run with -show parameter |
8289509 | Improve test coverage for XPath Axes: descendant, descendant-or-self, following, following-sibling |
8296084 | javax/swing/JSpinner/4788637/bug4788637.java fails intermittently on a VM |
8292990 | Improve test coverage for XPath Axes: parent |
8244976 | vmTestbase/nsk/jdi/Event/request/request001.java doesn’ initialize eName |
8286398 | Address possibly lossy conversions in jdk.internal.le |
8286191 | misc tests fail due to JDK-8285987 |
8285987 | executing shell scripts without #! fails on Alpine linux |
8283057 | Update GCC to version 11.2.0 for Oracle builds on Linux |
8275735 | [linux] Remove deprecated Metrics api (kernel memory limit) |
8304291 | [AIX] Broken build after JDK-8301998 |
8306825 | Monitor deflation might be accidentally disabled by zero intervals |
8306774 | Make runtime/Monitor/GuaranteedAsyncDeflationIntervalTest.java more reliable |
8305994 | Guarantee eventual async monitor deflation |
8257856 | Make ClassFileVersionsTest.java robust to JDK version updates |
8303508 | Vector.lane() gets wrong value on x86 |
8303069 | Memory leak in CompilerOracle::parse_from_line |
8303564 | C2: “Bad graph detected in build_loop_late” after a CMove is wrongly split thru phi |
8303511 | C2: assert(get_ctrl(n) == cle_out) during unrolling |
8303861 | Error handling step timeouts should never be blocked by OnError and others |
8305481 | gtest is_first_C_frame failing on ARM |
8297955 | LDAP CertStore should use LdapName and not String for DNs |
8224768 | Test ActalisCA.java fails |
8303476 | Add the runtime version in the release file of a JDK image |
8287897 | Augment src/jdk.internal.le/share/legal/jline.md with information on 4th party dependencies |
8303822 | gtestMain should give more helpful output |
8301190 | [vectorapi] The typeChar of LaneType is incorrect when default locale is tr |
8289735 | UTIL_LOOKUP_PROGS fails on pathes with space |
8306976 | UTIL_REQUIRE_SPECIAL warning on grep |
8306883 | Thread stacksize is reported with wrong units in os::create_thread logging |
8305403 | Shenandoah evacuation workers may deadlock |
8303130 | Document required Accessibility permissions on macOS |
8290822 | C2: assert in PhaseIdealLoop::do_unroll() is subject to undefined behavior |
8301491 | C2: java.lang.StringUTF16::indexOfChar intrinsic called with negative character argument |
8300079 | SIGSEGV in LibraryCallKit::inline_string_copy due to constant NULL src argument |
8306664 | GHA: Update MSVC version to latest stepping |
8302595 | use-after-free related to GraphKit::clone_map |
8293858 | Change PKCS7 code to use default SecureRandom impl instead of SHA1PRNG |
8254711 | Add java.security.Provider.getService JFR Event |
8294673 | JFR: Add SecurityProviderService#threshold to TestActiveSettingEvent.java |
8306768 | CodeCache Analytics reports wrong threshold |
8296545 | C2 Blackholes should allow load optimizations |
8306658 | GHA: MSVC installation could be optional since it might already be pre-installed |
8283566 | G1: Improve G1BarrierSet::enqueue performance |
8252990 | Intrinsify Unsafe.storeStoreFence |
8302594 | use-after-free in Node::destruct |
8302172 | [JVMCI] HotSpotResolvedJavaMethodImpl.canBeInlined must respect ForceInline |
8301338 | Identical branch conditions in CompileBroker::print_heapinfo |
8296412 | Special case infinite loops with unmerged backedges in IdealLoopTree::check_safepts |
8278146 | G1: Rework VM_G1Concurrent VMOp to clearly identify it as pause |
8238274 | (sctp) JDK-7118373 is not fixed for SctpChannel |
8301998 | Update HarfBuzz to 7.0.1 |
8304295 | harfbuzz build fails with GCC 7 after JDK-8301998 |
8306543 | GHA: MSVC installation is failing |
8201516 | DebugNonSafepoints generates incorrect information |
8305400 | ISO 4217 Amendment 175 Update |
8304683 | Memory leak in WB_IsMethodCompatible |
8304134 | jib bootstrapper fails to quote filename when checking download filetype |
8303482 | Update LCMS to 2.15 |
8303588 | [JVMCI] make JVMCI source directories conform with standard layout |
8302151 | BMPImageReader throws an exception reading BMP images |
8178806 | Better exception logging in crypto code |
8301123 | Enable Symbol refcounting underflow checks in PRODUCT |
8297730 | C2: Arraycopy intrinsic throws incorrect exception |
8300823 | UB: Compile::_phase_optimize_finished is initialized too late |
8299179 | ArrayFill with store on backedge needs to reduce length by 1 |
8299259 | C2: Div/Mod nodes without zero check could be split through iv phi of loop resulting in SIGFPE |
8296318 | use-def assert: special case undetected loops nested in infinite loops |
8298488 | [macos13] tools/jpackage tests failing with “Exit code: 137” on macOS |
8271519 | java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java failed with “Total [200] - Expected [400]” |
8285635 | javax/swing/JRootPane/DefaultButtonTest.java failed with Default Button not pressed for L&F: com.sun.java.swing.plaf.motif.MotifLookAndFeel |
8289949 | Improve test coverage for XPath: operators |
8277775 | Fixup bugids in RemoveDropTargetCrashTest.java - add 4357905 |
8282704 | runtime/Thread/StopAtExit.java may leak memory |
8273909 | vmTestbase/nsk/jdi/Event/request/request001 can still fail with “ERROR: new event is not ThreadStartEvent” |
8270434 | JDI+UT: Unexpected event in JDI tests |
8270869 | G1ServiceThread may not terminate |
8268298 | jdk/jfr/api/consumer/log/TestVerbosity.java fails: unexpected log message |
8298887 | On the latest macOS+XCode the Robot API may report wrong colors |
8269821 | Remove is-queue-active check in inner loop of write_ref_array_pre_work |
8299959 | C2: CmpU::Value must filter overflow computation against local sub computation |
8297000 | [jib] Add more friendly warning for proxy issues |
8295564 | Norwegian Nynorsk Locale is missing formatting |
8294906 | Memory leak in PKCS11 NSS TLS server |
8292755 | Non-default method in interface leads to a stack overflow in JShell |
8287007 | [cgroups] Consistently use stringStream throughout parsing code |
8287246 | DSAKeyValue should check for missing params instead of relying on KeyFactory provider |
8245877 | assert(_value != __null) failed: resolving NULL _value in JvmtiExport::post_compiled_method_load |
8305113 | (tz) Update Timezone Data to 2023c |
8288589 | Files.readString ignores encoding errors for UTF-16 |
8305711 | Arm: C2 always enters slowpath for monitorexit |
8305721 | add make compile-commands artifacts to .gitignore |
8274864 | Remove Amman/Cairo hacks in ZoneInfoFile |
8302491 | NoClassDefFoundError omits the original cause of an error |
8293887 | AArch64 build failure with GCC 12 due to maybe-uninitialized warning in libfdlibm k_rem_pio2.c |
8294281 | Allow warnings to be disabled on a per-file basis |
8278834 | Error “Cannot read field “sym” because “this.lvar[od]” is null” when compiling |
8304880 | [PPC64] VerifyOops code in C1 doesn’t work with ZGC |
8278434 | timeouts in test java/time/test/java/time/format/TestZoneTextPrinterParser.java |
8291638 | Keep-Alive timeout of 0 should close connection immediately |
8282227 | Locale information for nb is not working properly |
8275721 | Name of UTC timezone in a locale changes depending on previous code |
8304671 | javac regression: Compilation with –release 8 fails on underscore in enum identifiers |
8291226 | Create Test Cases to cover scenarios for JDK-8278067 |
8291637 | HttpClient default keep alive timeout not followed if server sends invalid value |
8287541 | Files.writeString fails to throw IOException for charset “windows-1252” |
8286287 | Reading file as UTF-16 causes Error which “shouldn’t happen” |
8283062 | Uninitialized warnings in libgtest with GCC 11.2 |
8282077 | PKCS11 provider C_sign() impl should handle CKR_BUFFER_TOO_SMALL error |
8268288 | jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java fails with “Error: ShouldNotReachHere()” |
8302849 | SurfaceManager might expose partially constructed object |
8303102 | jcmd: ManagementAgent.status truncates the text longer than O_BUFLEN |
8227257 | javax/swing/JFileChooser/4847375/bug4847375.java fails with AssertionError |
8303575 | adjust Xen handling on Linux aarch64 |
8300042 | Improve CPU related JFR events descriptions |
8303576 | addIdentitiesToKeystore in KeystoreImpl.m needs CFRelease call in early potential CHECK_NULL return |
8292301 | [REDO v2] C2 crash when allocating array of size too large |
8304063 | tools/jpackage/share/AppLauncherEnvTest.java fails when checking LD_LIBRARY_PATH |
8303949 | gcc10 warning Linux ppc64le - note: the layout of aggregates containing vectors with 8-byte alignment has changed in GCC 5 |
8303354 | addCertificatesToKeystore in KeystoreImpl.m needs CFRelease call in early potential CHECK_NULL return |
8301050 | Detect Xen Virtualization on Linux aarch64 |
8302791 | Add specific ClassLoader object to Proxy IllegalArgumentException message |
8302320 | AsyncGetCallTrace obtains too few frames in sanity test |
8303937 | Corrupted heap dumps due to missing retries for os::write() |
8303440 | The “ZonedDateTime.parse” may not accept the “UTC+XX” zone id |
8270859 | Post JEP 411 refactoring: client libs with maximum covering > 10K |
8292407 | Improve Weak CAS VarHandle/Unsafe tests resilience under spurious failures |
8303433 | Bump update version for OpenJDK: jdk-17.0.8 |
8301009 | Update libxml2 to 2.10.3 |
8304751 | Improve pipeline layout |
8306115 | Update libxml2 to 2.10.4 |
8307642 | Change JavaFX release version to 17.0.8 in jfx17u |