Примечания к релизу Liberica JDK 17.0.3+7

Данный релиз соответствует OpenJDK 17.0.3+7, номер версии Liberica JDK - 17

Liberica JDK 17.0.3+7

Liberica является сертифицированным 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). Liberica 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 17.
  • Версия для Linux ARMv7 содержит Device IO API, скомпилированный для Raspberry Pi.

Пожалуйста, прочитайте примечания к релизу Oracle JDK 17.0.3 для получения дополнительной информации о функционале JDK 17. В этом документе описываются особенности дистрибутива Liberica по сравнению с дистрибутивом Oracle JDK 17.

Поддерживаемые серверные и десктопные конфигурации

Liberica поддерживается в следующих ОС:

  • 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)

Также известно, Liberica JDK работает с некоторыми другими дистрибутивами Linux и версиями Windows.

Примечание: Минимальная поддерживаемая версия ядра Linux - 2.6.18, версия GLIBC - 2.6. LibericaFX работает на всех поддерживаемых версиях Ubuntu, семействе Red Hat Linux начиная с версии 7.x и SUSE с бэкэндом GTK2.

Поддерживаемые конфигурации для встраиваемых применений

Liberica протестирован и сертифицирован на Raspberry Pi 2, 3 и 4 под управлением следующих ОС:

  • Raspbian OS (armhf)
  • OpenSUSE (armv8)

Также есть успешный опыт запуска и работы на Debian (armhf) и Ubuntu (armhf).

Поставка Liberica JDK 17

Liberica JDK 17 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.

Liberica 17 содержит весь функционал, поддерживаемый OpenJDK 17.

С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.

Liberica JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 17 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Liberica Native Image Kit.

По умолчанию Liberica использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.

LibericaFX для Raspberry Pi

Liberica JDK 17 поставляется в комплекте со сборкой платформы LibericaFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Liberica.

  • Java FX Graphics - поддерживается.
  • Java FX Controls - поддерживается.
  • Java FX Media - не поддерживается.
  • Java FX Webkit - не поддерживается.

Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Liberica пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.

Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:

  • -Dprism.order=sw - программный конвейер рендеринга. *
  • -Dprism.order=es2 - EGL-конвейер и аппаратное ускорение. *
  • -Djavafx.platform=gtk, если вы хотите запустить приложение LibericaFX, используя Liberica из X11.

* Не поддерживается на Raspberry Pi 4.

Дополнительная информация доступна на следующей wiki странице.

Device IO API для Raspberry Pi

Liberica JDK 17 для armhf поставляется со встроенным модулем реализации API ввода-вывода (DIO) устройства OpenJDK. DIO предоставляет Java API для доступа к выводам Raspberry PI GPIO и для связи с периферийными устройствами:

  • Универсальный ввод / вывод (GPIO).
  • Межинтегральная шина (I2C), последовательный интерфейс (SPI).
  • Универсальный асинхронный приемник / передатчик (UART).

Дополнительная информация доступна на следующей wiki странице.

Известные особенности

LibericaFX и EGL на ОС Raspbian

С 2017 года в Raspbian OS изменилось расположение бибилитек libEGL.so и libGLESv2.so для чипа Broadcom. Если вы хотите использовать аппаратное ускорение EGL, доступное в видеодрайверах Broadcom в LibericaFX, при работе в Raspbian OS, выполните следующую команду:

cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so

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

BellSoft Liberica содержит исправления уязвимостей 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
Обратно на страницу загрузки
BellSoft LTD info@bell-sw.com BellSoft LTD logo Liberica Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 111 North Market Street, Suite 300 CA 95113 San Jose US +1 702 213-59-59