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

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

Liberica JDK 17.0.1+12

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.1 для получения дополнительной информации о функционале 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
8273754 Re-introduce Automatic-Module-Name in empty jars
8273358 macOS Monterey does not have the font Times needed by Serif
8273150 Revert “8225083: Remove Google certificate that is expiring in December 2021”
8269993 [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
8272581 sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
8266182 Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
8269934 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
8272806 [macOS] “Apple AWT Internal Exception” when input method is changed
8270344 Session resumption errors
8269897 Shenandoah: Resolve UNKNOWN access strength, where possible
8272700 [macos] Build failure with Xcode 13.0 after JDK-8264848
8270137 Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
8272472 StackGuardPages test doesn’t build with glibc 2.34
8272708 [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
8270096 Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
8270094 Shenandoah: Provide human-readable labels for test configurations
8269478 Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
8265776 Improve Stream handling for SSL
8272602 [macos] not all KEY_PRESSED events sent when control modifier is used
8272326 java/util/Random/RandomTestMoments.java had two Gaussian fails
8248899 security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
8270280 security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java OCSP response error
8243543 jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
8225083 Remove Google certificate that is expiring in December 2021
8272124 Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
8272131 PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
8271203 C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
8271276 C2: Wrong JVM state used for receiver null check
8268963 [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
8271925 ZGC: Arraycopy stub passes invalid oop to load barrier
8268019 C2: assert(no_dead_loop) failed: dead loop detected
8270098 ZGC: ZBarrierSetC2::clone_at_expansion fails with “Guard against surprises” assert
8261088 Repeatable annotations without @Target cannot have containers that target module declarations
8272332 –with-harfbuzz=system doesn’t add -lharfbuzz after JDK-8255790
8271589 fatal error with variable shift count integer rotate operation.
8271730 Client authentication using RSASSA-PSS fails after correct certificate requests
8271723 Unproblemlist runtime/InvocationTests/invokevirtualTests.java
8267712 Better LDAP reference processing
8263314 Enhance XML Dsig modes
8266103 Better specified spec values
8266689 More Constrained Delegation
8268427 Improve AlgorithmConstraints:checkAlgorithm performance
8269851 OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
8267625 AARCH64: typo in LIR_Assembler::emit_profile_type
8269624 Enhance method selection support
8269574 C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
8268261 C2: assert(n != __null) failed: Bad immediate dominator info.
8225082 Remove IdenTrust certificate that is expiring in September 2021
8271335 Updating RE Configs for BUILD REQUEST 17.0.1+4
8270398 Enhance canonicalization
8270404 Better canonicalization
8267666 Add option to jcmd GC.heap_dump to use existing file
8269882 stack-use-after-scope in NewObjectA
8263531 Remove unused buffer int
8262731 [macOS] Exception from “Printable.print” is swallowed during “PrinterJob.print”
8269763 The JEditorPane is blank after JDK-8265167
8265580 Enhanced style for RTF kit
8265574 Improve handling of sheets
8266115 More Manifest Jar Loading
8268199 Correct certificate requests
8268500 Better specified ParameterSpecs
8268193 Improve requests of certificates
8268205 Enhance DTLS client handshake
8269618 Better session identification
8268506 More Manifest Digests
8269297 Bump version numbers for JDK 17.0.1
8267735 Better BMP support
8267086 ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic
8266137 Improve Keystore integrity
8266097 Better hashing support
8266109 More Resilient Classloading
8267729 Improve TLS client handshaking
8265167 Richer Text Editors
Обратно на страницу загрузки
BellSoft LTD [email protected] 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