The full version string for this update release is 17.0.3+7. The version number is 17.

Liberica JDK 17.0.3+7

Liberica is a certified, Java SE 17-compliant distribution of OpenJDK 17 which works on server (Linux x86_64, Linux ARM64, Solaris SPARC, Solaris x64, Windows 64), desktop (Windows 64, Windows 32, Mac, Linux x86_64), and embedded devices (Linux ARM64, Linux ARMv7, including Raspberry Pi 2 & 3 (ARMv6 hardfloat)). It has the following notable additions:

  • Linux x86_64 version contains experimental support for ZGC.

  • Linux x86_64, ARMv8 and ARMv7 distributions include a choice of Client VM, Server VM and Minimal VM.

  • Alpine Linux x86_64 version is build with musl support.

  • Windows x86_64, Windows x86, Windows ARMv8, Mac, Linux x86_64, Linux x86 and Linux ARMv7 distributions contain OpenJFX 17.

  • Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.

Please refer to the Oracle JDK 17.0.3 release notes for further information on JDK 17 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 17 distribution.

Supported Server and Desktop configurations

Liberica is supported on the following OSes:

  • Ubuntu Linux 16.04, 18.04, 20.04 (x86, x86_64, ARMv7, ARMv8)

  • Debian Linux 8, 9, 10 (x86, x86_64, ARMv7, ARMv8)

  • Red Hat, Oracle Linux and CentOS 8x, 6.x, 7.x (x86, x86_64, ARMv7, ARMv8)

  • Alpine Linux 3.7+ (x86_64, ARMv8)

  • SUSE Linux Enterprise 12, 15 and 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)

It is also known to work on other Linux distributions and Windows versions.

Note: The minimum supported Linux kernel version is 2.6.18 and GLIBC version 2.6. LibericaFX works on all supported Ubuntu versions, Red Hat Linux family starting from 7.x and SUSE versions with GTK3 backend.

Supported Embedded configurations

Liberica is tested and certified on Raspberry Pi 2, 3 and 4 running the following OSes:

  • Raspbian OS (armhf)

  • OpenSUSE (armv8)

It is also known to work with Debian (armhf) and Ubuntu (armhf).

Liberica JDK 17 distribution

Liberica JDK 17 are distributed as .rpm, .zip, .deb and .tar.gz packages. Please select the one which is most appropriate for your purposes.

Liberica JDK 17 introduced all new features supported by OpenJDK 17.

With the introduction of the Jigsaw feature in JDK 9 and Minimal VM it is now possible to create a Runtime that is sufficient to run your application and trim down the size of the Runtime. To generate a Runtime with just the Minimal VM, add --vm=minimal to jlink options.

Liberica JDK continues to provide support for AOT and Graal JIT. Since in OpenJDK 17 builds these features are deemed experimental and deprecated, it is recommended to compile native executables with Liberica Native Image Kit to avoid errors.

By default, the Liberica uses Server VM. Server VM and Client VM can be enabled with -server and -client command line options, respectively. In case the deployment requires to minimize the footprint, it may be beneficial to use Minimal VM, which emphasises on a minimal footprint. It has C1 JIT compiler only, Serial GC and no serviceability features.

LibericaFX for the Raspberry Pi

Liberica JDK 17 come with a bundled LibericaFX implementation, which is based on OpenJFX. The following tables lists Java FX modules status of Liberica distribution

  • Java FX Graphics - works.

  • Java FX Controls - works.

  • Java FX Media - does not work.

  • Java FX Webkit - does not work.

The following pipelines are known to work: EGL, SW (direct framebuffer) and GTK. By default, Liberica tries to use the accelerated EGL pipeline, which requires the presence of EGL libraries. If they are not found, the implementation falls back to software rendering.

Use the following command line options to specify the rendering pipeline:

  • -Dprism.order=sw forces the use of software rendering pipeline. *

  • -Dprism.order=es2 forces the use of EGL pipeline and hardware acceleration. *

  • -Djavafx.platform=gtk if you would like to launch a LibericaFX application using Liberica from X11.

  • Not supported on Raspberry Pi 4.

Please refer to the following wiki for more information.

Device IO API for the Raspberry Pi

Liberica JDK 17 comes with a bundled OpenJDK Device I/O (DIO) API implementation module. DIO provides a Java API for accessing Raspberry PI GPIO pins and for communicating with peripheral devices:

  • General Purpose Input/Output (GPIO).

  • Inter-Integrated Circuit Bus (I2C), Serial Peripheral Interface (SPI).

  • Universal Asynchronous Receiver/Transmitter (UART).

Please refer to the following wiki for more information.

Security Baselines

BellSoft Liberica follows the security baselines for Oracle Java SE. Please refer to the Oracle documentation for a list of issues fixed in a given release.

Known Issues

LibericaFX and EGL on Raspbian

As of 2017, the default location of Broadcom libEGL.so and libGLESv2.so has changed in Raspbian OS. If you’d like to leverage hardware EGL acceleration available from Broadcom video drivers in LibericaFX while running a recent Raspbian OS, run the following command:

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

Issues fixed

IssueDescription

JDK-8281089

JavaFX built with VS2019 and jlinked into JDK 11.x fails to start

JDK-8280490

Change JavaFX release version in jfx17u to 17.0.3

JDK-8278260

JavaFX shared libraries not stripped on Linux or macOS

JDK-8277457

AccessControlException: access denied (“java.net.NetPermission” “getCookieHandler”)

JDK-8242544

CMD+ENTER key event crashes the application when invoked on dialog

JDK-8203463

[Accessibility, Narrator] NPE in TableView

JDK-8197991

Selecting many items in a TableView is very slow

JDK-8282099

Cherry-pick WebKit 613.1 stabilization fixes (2)

JDK-8281711

Cherry-pick WebKit 613.1 stabilization fixes

JDK-8281459

WebKit 613.1 build broken on M1

JDK-8278980

Update WebKit to 613.1

JDK-8274221

More definite BER encodings

JDK-8272261

Improve JFR recording file processing

JDK-8272255

Completely handle MIDI files

JDK-8284548

Unexpected StringIndexOutOfBoundsException can occur for invalid XPath expressions after JDK-8270504

JDK-8282397

createTempFile method of java.io.File is failing when called with suffix of spaces character

JDK-8278798

Improve supported intrinsic

JDK-8278356

Improve file creation

JDK-8272594

Better record of recordings

JDK-8269938

Enhance XML processing passes redux

JDK-8284920

Incorrect Token type causes XPath expression to return empty result

JDK-8282300

Throws NamingException instead of InvalidNameException after JDK-8278972

JDK-8281388

Change wrapping of EncryptedPrivateKeyInfo

JDK-8278972

Improve URL supports

JDK-8278805

Enhance BMP image loading

JDK-8278449

Improve keychain support

JDK-8277672

Better invocation handler handling

JDK-8277233

Improve ECDSA signature support

JDK-8277227

Better identification of OIDs

JDK-8275151

Improved Object Identification

JDK-8272588

Enhanced recording parsing

JDK-8270504

Better Xpath expression handling

JDK-8282761

XPathFactoryImpl remove setProperty and getProperty methods

JDK-8277795

ldap connection timeout not honoured under contention

JDK-8276141

XPathFactory set/getProperty method

JDK-8274471

Add support for RSASSA-PSS in OCSP Response

JDK-8282219

jdk/java/lang/ProcessBuilder/Basic.java fails on AIX

JDK-8279669

test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition

JDK-8276841

Add support for Visual Studio 2022

JDK-8272866

java.util.random package summary contains incorrect mixing function in table

JDK-8272996

JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled

JDK-8278185

Custom JRE cannot find non-ASCII named module inside

JDK-8281460

Let ObjectMonitor have its own NMT category

JDK-8278163

–with-cacerts-src variable resolved after GenerateCacerts recipe setup

JDK-8277383

VM.metaspace optionally show chunk freelist details

JDK-8271721

Split gc/g1/TestMixedGCLiveThreshold into separate tests

JDK-8277488

Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022

JDK-8270117

Broken jtreg link in “Building the JDK” page

JDK-8279695

[TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also

JDK-8278080

Add –with-cacerts-src=‘user cacerts folder’ to enable deterministic cacerts generation

JDK-8277762

Allow configuration of HOTSPOT_BUILD_USER

JDK-8274524

SSLSocket.close() hangs if it is called during the ssl handshake

JDK-8278346

java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine

JDK-8274171

java/nio/file/Files/probeContentType/Basic.java failed on “Content type” mismatches

JDK-8274562

(fs) UserDefinedFileAttributeView doesn’t correctly determine if supported when using OverlayFS

JDK-8273655

content-types.properties files are missing some common types

JDK-8279385

[test] Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344

JDK-8280373

Update Xalan serializer / SystemIDResolver to align with JDK-8270492

JDK-8272541

Incorrect overflow test in Toom-Cook branch of BigInteger multiplication

JDK-8278951

containers/cgroup/PlainRead.java fails on Ubuntu 21.10

JDK-8272600

(test) Use native “sleep” in Basic.java

JDK-8271199

Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key

JDK-8277299

STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits

JDK-8281061

[s390] JFR runs into assertions while validating interpreter frames

JDK-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

JDK-8190748

java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently

JDK-8274750

java/io/File/GetXSpace.java failed: ‘/dev’: 191488 != 190976

JDK-8273387

remove some unreferenced gtk-related functions

JDK-8279702

[macosx] ignore xcodebuild warnings on M1

JDK-8277180

Intrinsify recursive ObjectMonitor locking for C2 x64 and A64

JDK-8277449

compiler/vectorapi/TestLongVectorNeg.java fails with release VMs

JDK-8275643

C2’s unaryOp vector intrinsic does not properly handle LongVector.neg

JDK-8271056

C2: “assert(no_dead_loop) failed: dead loop detected” due to cmoving identity

JDK-8275847

Scheduling fails with “too many D-U pinch points” on small method

JDK-8274944

AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info

JDK-8275874

[JVMCI] only support aligned reads in c2v_readFieldValue

JDK-8271506

Add ResourceHashtable support for deleting selected entries

JDK-8278381

[GCC 11] Address::make_raw() does not initialize rspec

JDK-8279124

VM does not handle SIGQUIT during initialization

JDK-8277497

Last column cell in the JTable row is read as empty cell

JDK-8278604

SwingSet2 table demo does not have accessible description set for images

JDK-8278526

[macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column

JDK-8275645

[JVMCI] avoid unaligned volatile reads on AArch64

JDK-8280414

Memory leak in DefaultProxySelector

JDK-8273381

Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm

JDK-8269616

serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error

JDK-8280155

[PPC64, s390] frame size checks are not yet correct

JDK-8279924

[PPC64, s390] implement frame::is_interpreted_frame_valid checks

JDK-8280526

x86_32 Math.sqrt performance regression with -XX:UseSSE=

JDK-8279076

C2: Bad AD file when matching SqrtF with UseSSE=0

JDK-8279445

Update JMH devkit to 1.34

JDK-8274753

ZGC: SEGV in MetaspaceShared::link_shared_classes

JDK-8274935

dumptime_table has stale entry

JDK-8251216

Implement MD5 intrinsics on AArch64

JDK-8278241

Implement JVM SpinPause on linux-aarch64

JDK-8275608

runtime/Metaspace/elastic/TestMetaspaceAllocationMT2 too slow

JDK-8276057

Update JMH devkit to 1.33

JDK-8275082

Update XML Security for Java to 2.3.0

JDK-8177814

jdk/editpad is not in jdk TEST.groups

JDK-8253197

vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with “ERROR: DebuggeeSleepingThread: ThreadDeath lost”

JDK-8236505

Mark jdk/editpad/EditPadTest.java as @headful

JDK-8272553

several hotspot runtime/CommandLine tests don’t check exit code

JDK-8275687

runtime/CommandLine/PrintTouchedMethods test shouldn’t catch RuntimeException

JDK-8278344

sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output

JDK-8273972

Multi-core choke point in CMM engine (LCMSTransform.doTransform)

JDK-8273438

Enable parallelism in vmTestbase/metaspace/stressHierarchy tests

JDK-8278389

SuspendibleThreadSet::_suspend_all should be volatile/atomic

JDK-8273433

Enable parallelism in vmTestbase_nsk_sysdict tests

JDK-8277503

compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java failed with “OnSpinWaitInst with the expected value ‘isb’ not found.”

JDK-8277137

Set OnSpinWaitInst/OnSpinWaitInstCount defaults to “isb”/1 for Arm Neoverse N1

JDK-8273341

Update Siphash to version 1.0

JDK-8269032

Stringdedup tests are failing if the ergonomically select GC does not support it

JDK-8186670

Implement _onSpinWait() intrinsic for AArch64

JDK-8276766

Enable jar and jmod to produce deterministic timestamped content

JDK-8279453

Disable tools/jar/ReproducibleJar.java on 32-bit platforms

JDK-8279998

PPC64 debug builds fail with “untested: RangeCheckStub: predicate_failed_trap_id”

JDK-8280002

jmap -histo may leak stream

JDK-8277069

[REDO] JDK-8276743 Make openjdk build Zip Archive generation “reproducible”

JDK-8279833

Loop optimization issue in String.encodeUTF8_UTF16

JDK-8273277

C2: Move conditional negation into rc_predicate

JDK-8279412

[JVMCI] failed speculations list must outlive any nmethod that refers to it

JDK-8271202

C1: assert(false) failed: live_in set of first block must be empty

JDK-8263567

gtests don’t terminate the VM safely

JDK-8269206

A small typo in comment in test/lib/sun/hotspot/WhiteBox.java

JDK-8278309

[windows] use of uninitialized OSThread::_state

JDK-8274506

TestPids.java and TestPidsLimit.java fail with podman run as root

JDK-8276764

Enable deterministic file content ordering for Jar and Jmod

JDK-8273967

gtest os.dll_address_to_function_and_library_name_vm fails on macOS12

JDK-8273366

[testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12

JDK-8277846

Implement fast-path for ASCII-compatible CharsetEncoders on ppc64

JDK-8273526

Extend the OSContainer API pids controller with pids.current

JDK-8269849

vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with “OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects”

JDK-8269087

CheckSegmentedCodeCache test fails in an emulated-client VM

JDK-8278871

[JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob

JDK-8277447

Hotspot C1 compiler crashes on Kotlin suspend fun with loop

JDK-8279505

Update documentation for RETRY_COUNT and REPEAT_COUNT

JDK-8225559

assertion error at TransTypes.visitApply

JDK-8276654

element-list order is non deterministic

JDK-8279300

[arm32] SIGILL when running GetObjectSizeIntrinsicsTest

JDK-8273682

Upgrade Jline to 3.20.0

JDK-8278758

runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134

JDK-8262134

compiler/uncommontrap/TestDeoptOOM.java failed with “guarantee(false) failed: wrong number of expression stack elements during deopt”

JDK-8269037

jsig/Testjsig.java doesn’t have to be restricted to linux only

JDK-8269523

runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting ‘VM operation took too long’

JDK-8244602

Add JTREG_REPEAT_COUNT to repeat execution of a test

JDK-8272398

Update DockerTestUtils.buildJdkDockerImage()

JDK-8278384

Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT

JDK-8278020

~13% variation in Renaissance-Scrabble

JDK-8279225

[arm32] C1 longs comparison operation destroys argument registers

JDK-8266490

Extend the OSContainer API to support the pids controller of cgroups

JDK-8279379

GHA: Print tests that are in error

JDK-8278987

RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in write_sample_info

JDK-8278627

Shenandoah: TestHeapDump test failed

JDK-8278824

Uneven work distribution when scanning heap roots in G1

JDK-8278239

vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d

JDK-8277919

OldObjectSample event causing bloat in the class constant pool in JFR recording

JDK-8277342

vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for

JDK-8278104

C1 should support the compiler directive ‘BreakAtExecute’

JDK-8274465

Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures

JDK-8273933

[TESTBUG] Test must run without preallocated exceptions

JDK-8278172

java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux

JDK-8275800

Redefinition leaks MethodData::_extra_data_lock

JDK-8273634

[TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java

JDK-8239502

[TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails

JDK-8275326

C2: assert(no_dead_loop) failed: dead loop detected

JDK-8274130

C2: MulNode::Ideal chained transformations may act on wrong nodes

JDK-8279011

JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t

JDK-8276662

Scalability bottleneck in SymbolTable::lookup_common()

JDK-8275536

Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime

JDK-8273895

compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3

JDK-8272167

AbsPathsInImage.java should skip *.dSYM directories

JDK-8270874

JFrame paint artifacts when dragged from standard monitor to HiDPI monitor

JDK-8275610

C2: Object field load floats above its null check resulting in a segfault

JDK-8278099

two sun/security/pkcs11/Signature tests failed with AssertionError

JDK-8276623

JDK-8275650 accidentally pushed “out” file

JDK-8277328

jdk/jshell/CommandCompletionTest.java failures on Windows

JDK-8277441

CompileQueue::add fails with assert(_last→next() == __null) failed: not last

JDK-8274714

Incorrect verifier protected access error message

JDK-8274658

ISO 4217 Amendment 170 Update

JDK-8274795

AArch64: avoid spilling and restoring r18 in macro assembler

JDK-8277777

[Vector API] assert(r→is_XMMRegister()) failed: must be in x86_32.ad

JDK-8276314

[JVMCI] check alignment of call displacement during code installation

JDK-8265150

AsyncGetCallTrace crashes on ResourceMark

JDK-8276177

nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with “assert(def_ik→is_being_redefined()) failed: should be being redefined to get here”

JDK-8275650

Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11

JDK-8273704

DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time

JDK-8273162

AbstractSplittableWithBrineGenerator does not create a random salt

JDK-8273351

bad tag in jdk.random module-info.java

JDK-8247980

Exclusive execution of java/util/stream tests slows down tier1

JDK-8272327

Shenandoah: Avoid enqueuing duplicate string candidates

JDK-8278115

gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx

JDK-8278116

runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx

JDK-8277992

Add fast jdk_svc subtests to jdk:tier3

JDK-8278016

Add compiler tests to tier

JDK-8277385

Zero: Enable CompactStrings support

JDK-8275586

Zero: Simplify interpreter initialization

JDK-8269175

[macosx-aarch64] wrong CPU speed in hs_err file

JDK-8278822

Bump update version for OpenJDK: jdk-17.0.3

ON THIS PAGE