The full version string for this update release is 18.0.2+10. The version number is 18.

Liberica JDK 18.0.2+10

Liberica is a certified, Java SE 18-compliant distribution of OpenJDK 18 which works on server (Linux x86_64, Linux ARM64, 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 18.

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

Please refer to the Oracle JDK 18.0.2 release notes for further information on JDK 18 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 18 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 18 distribution

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

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

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 18 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 18 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 18 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-8287175

Backout 8270480: Better path to expressing Xpaths

JDK-8285407

Improve Xalan supports

JDK-8285515

(dc) DatagramChannel.disconnect fails with “Invalid argument” on macOS 12.4

JDK-8287644

[18u] Backport of JDK-8240903 causes test errors

JDK-8286855

javac error on invalid jar should only print filename

JDK-8282080

Lambda deserialization fails for Object method references on interfaces

JDK-8285517

System.getenv() returns unexpected value if environment variable has non ASCII character

JDK-8287378

GHA: Update cygwin to fix issues in langtools tests on Windows

JDK-8286594

(zipfs) Mention paths with dot elements in ZipException and cleanups

JDK-8286444

javac errors after JDK-8251329 are not helpful enough to find root cause

JDK-8284094

Memory leak in invoker_completeInvokeRequest()

JDK-8287162

(zipfs) Performance regression related to support for POSIX file permissions

JDK-8240903

Add test to check that jmod hashes are reproducible

JDK-8287336

GHA: Workflows break on patch versions

JDK-8287119

Add Distrust.java to ProblemList

JDK-8287202

GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event

JDK-8286029

Add classpath exemption to globals_vectorApiSupport_***.S.inc

JDK-8285956

(fs) Excessive default poll interval in PollingWatchService

JDK-8282676

Improve subject handling

JDK-8286601

Mac Aarch: Excessive warnings to be ignored for build jdk

JDK-8285523

Improve test java/io/FileOutputStream/OpenNUL.java

JDK-8283469

Don’t use memset to initialize members in FileMapInfo and fix memory leak

JDK-8285921

serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine

JDK-8286283

assert(func2 == 0 && func3 == 0) failed: not unary

JDK-8286013

Incorrect test configurations for compiler/stable/TestStableShort.java

JDK-8285828

runtime/execstack/TestCheckJDK.java fails with zipped debug symbols

JDK-8284992

Fix misleading Vector API doc for LSHR operator

JDK-8286198

[linux] Fix process-memory information

JDK-8282219

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

JDK-8284848

C2: Compiler blackhole arguments should be treated as globally escaping

JDK-8283022

com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297

JDK-8284023

java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo

JDK-8280956

Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y

JDK-8285686

Upgrade to FreeType 2.12.0

JDK-8284532

Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler

JDK-8285394

Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()

JDK-8282170

JVMTI SetBreakpoint metaspace allocation test

JDK-8284549

JFR: FieldTable leaks FieldInfoTable member

JDK-8284620

CodeBuffer may leak _overflow_arena

JDK-8283422

Create a new test for JDK-8254790

JDK-8284458

CodeHeapState::aggregate() leaks blob_name

JDK-8283725

Launching java with “-Xlog:gc=trace,safepoint=trace,class*=trace” crashes the JVM

JDK-8284808

change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2

JDK-8280476

[macOS] : hotspot arm64 bug exposed by latest clang

JDK-8284622

Update versions of some Github Actions used in JDK workflow

JDK-8282929

Localized monetary symbols are not reflected in toLocalizedPattern return value

JDK-8284866

Add test to JDK-8273056

JDK-8282042

[testbug] FileEncodingTest.java depends on default encoding

JDK-8284033

Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c

JDK-8285445

cannot open file “NUL:”

JDK-8284920

Incorrect Token type causes XPath expression to return incorrect results

JDK-8284548

Invalid XPath expression causes StringIndexOutOfBoundsException

JDK-8284370

Improve zlib usage

JDK-8283379

Memory leak in FileHeaderHelper

JDK-8284369

TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4

JDK-8284507

GHA: Only check test results if testing was not skipped

JDK-8284389

Improve stability of GHA Pre-submit testing by caching cygwin installer

JDK-8283217

Leak FcObjectSet in getFontConfigLocations() in fontpath.c

JDK-8281638

jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions

JDK-8281318

Improve jfr/event/allocation tests reliability

JDK-8277893

Arraycopy stress tests

JDK-8282194

C1: Missing side effects of dynamic constant linkage

JDK-8281811

assert(_base == Tuple) failed: Not a Tuple after JDK-8280799

JDK-8282045

When loop strip mining fails, safepoints are removed from loop anyway

JDK-8279822

CI: Constant pool entries in error state are not supported

JDK-8283408

Fix a C2 crash when filling arrays with unsafe

JDK-8282590

C2: assert(addp→is_AddP() && addp→outcnt() > 0) failed: Don’t process dead nodes

JDK-8283451

C2: assert(_base == Long) failed: Not a Long

JDK-8283187

C2: loop candidate for superword not always unrolled fully if superword fails

JDK-8275337

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

JDK-8282231

x86-32: runtime call to SharedRuntime::ldiv corrupts registers

JDK-8272493

Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2

JDK-8277055

Assert “missing inlining msg” with -XX:+PrintIntrinsics

JDK-8282172

CompileBroker::log_metaspace_failure is called from non-Java/compiler threads

JDK-8282312

Minor corrections to evbroadcasti32x4 intrinsic on x86

JDK-8271055

Crash during deoptimization with “assert(bb→is_reachable()) failed: getting result from unreachable basicblock” with -XX:+VerifyStack

JDK-8279219

[REDO] C2 crash when allocating array of size too large

JDK-8280600

C2: assert(!had_error) failed: bad dominance

JDK-8281544

assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/

JDK-8280901

MethodHandle::linkToNative stub is missing w/ -Xint

JDK-8280867

Cpuid1Ecx feature parsing is incorrect for AMD CPUs

JDK-8283641

Large value for CompileThresholdScaling causes assert

JDK-8282592

C2: assert(false) failed: graph should be schedulable

JDK-8282874

Bad performance on gather/scatter API caused by different IntSpecies of indexMap

JDK-8280799

РЎ2: assert(false) failed: cyclic dependency prevents range check elimination

JDK-8256368

Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers

JDK-8271008

appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom

JDK-8281822

Test failures on non-DTrace builds due to incomplete DTrace* flags handling

JDK-8281266

[JVMCI] MetaUtil.toInternalName() doesn’t handle hidden classes correctly

JDK-8282887

Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows

JDK-8282628

Potential memory leak in sun.font.FontConfigManager.getFontConfig()

JDK-8282551

Properly initialize L32X64MixRandom state

JDK-8281181

Do not use CPU Shares to compute active processor count

JDK-8284012

Correction version-numbers.conf after merge

JDK-8283190

Improve MIDI processing

JDK-8283555

G1: Concurrent mark accesses uninitialized BOT of closed archive regions

JDK-8278381

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

JDK-8281771

Crash in java_lang_invoke_MethodType::print_signature

JDK-8281274

deal with ActiveProcessorCount in os::Linux::print_container_info

JDK-8278794

Infinite loop in DeflaterOutputStream.finish()

JDK-8278549

UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15

JDK-8283350

(tz) Update Timezone Data to 2022a

JDK-8281866

Enhance MethodHandle invocations

JDK-8278065

Refactor subclassAudits to use ClassValue

JDK-8280041

Retry loop issues in java.io.ClassCache

JDK-8277072

ObjectStreamClass caches keep ClassLoaders alive

JDK-8282444

Module finder incorrectly assumes default file system path-separator character

JDK-8282583

Update BCEL md to include the copyright notice

JDK-8281859

Improve class compilation

JDK-8281168

Micro-optimize VarForm.getMemberName for interpreter

JDK-8279668

x86: AVX2 versions of vpxor should be asserted

JDK-8272249

Better properties of loaded Properties

JDK-8279958

Provide configure hints for Alpine/apk package managers

JDK-8282225

GHA: Allow one concurrent run per PR only

JDK-8283017

GHA: Workflows break with update release versions

JDK-8281615

Deadlock caused by jdwp agent

JDK-8282295

SymbolPropertyEntry::set_method_type fails with assert

JDK-8283037

Update jdk18u fix version to 18.0.2

JDK-8274524

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

JDK-8282397

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

JDK-8270480

Better path to expressing Xpaths

JDK-8272243

Improve DER parsing

JDK-8282300

Throws NamingException instead of InvalidNameException after JDK-8278972

JDK-8277608

Address IP Addressing

JDK-8281093

JDK 11.0.14 violates Attribute-Value Normalization in the XML specification 1.0

JDK-8281388

Change wrapping of EncryptedPrivateKeyInfo

JDK-8278356

Improve file creation

JDK-8270504

Better Xpath expression handling

JDK-8272588

Enhanced recording parsing

JDK-8272594

Better record of recordings

JDK-8272261

Improve JFR recording file processing

JDK-8277672

Better invocation handler handling

JDK-8269938

Enhance XML processing passes redux

JDK-8278972

Improve URL supports

JDK-8272255

Completely handle MIDI files

JDK-8280674

Bump version numbers for July CPU

JDK-8282134

Certain regex can cause a JS trap in WebView

JDK-8280841

Update SQLite to 3.37.2

JDK-8286256

Update libxml2 to 2.9.14 8286257: Update libxslt to 1.1.35

JDK-8285475

Create release notes for 18.0.1

JDK-8285181

Change JavaFX release version to 18.0.2 in jfx18 branch

JDK-8283328

Update libxml2 to 2.9.13

ON THIS PAGE