The full version string for this update release is 11.0.10+9. The version number is 11.0.10.
Liberica JDK 11.0.10+9
Liberica is a certified, Java SE 11-compliant distribution of OpenJDK 11 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, Mac, Linux x86_64, Linux x86 and Linux ARMv7 distributions contain OpenJFX 11.
-
Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.
Please refer to the Oracle JDK 11.0.10 release notes for further information on JDK 11 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 11 distribution.
Supported Server and Desktop configurations
Liberica is supported on the following OSes:
-
Ubuntu Linux 16.04, 18.04 (x86, x86_64, ARMv8)
-
Debian Linux 8, 9 (x86, x86_64, ARMv8)
-
Red Hat, Oracle Linux and CentOS 6.x, 7.x (x86, x86_64, ARMv8)
-
Alpine Linux 3.7+
-
SUSE Linux Enterprise 12, 15 and tumbleweed (x86_64, ARMv8)
-
Apple macOS 10.11+
-
Solaris 11.1+ (SPARC and x64)
-
Microsoft Windows 2019, Windows 2016, Windows 2012 R2, Windows 10, Windows 8, Windows 7 (64 and 32 bit)
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 running the following OSes:
-
Raspbian OS (armhf)
-
OpenSUSE (armv8)
It is also known to work with Debian (armhf) and Ubuntu (armhf).
Liberica JDK 11 distribution
Liberica JDK 11.0.10 are distributed as .rpm, .zip, .deb and .tar.gz packages. Please select the one which is most appropriate for your purposes.
Liberica 11 introduced all new features supported by OpenJDK 11.
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.
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 11 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.
Please refer to the following wiki for more information.
Device IO API for the Raspberry Pi
Liberica JDK 11 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
Issue | Description |
---|---|
JDK-6722928 | Support SSPI as a native GSS-API provider |
JDK-7185258 | [macosx] Deadlock in SunToolKit.realSync() |
JDK-8152332 | [macosx] JFileChooser cannot be serialized on Mac OS X |
JDK-8161684 | [testconf] Add VerifyOops’ testing into compiler tiers |
JDK-8171279 | Support X25519 and X448 in TLS |
JDK-8173361 | various crashes in JvmtiExport::post_compiled_method_load |
JDK-8173658 | JvmtiExport::post_class_unload() is broken for non-JavaThread initiators |
JDK-8181775 | JavaFX WebView does not calculate border-radius properly |
JDK-8191006 | hsdis disassembler plugin does not compile with binutils 2.29+ |
JDK-8197981 | Missing return statement in __sync_val_compare_and_swap_8 |
JDK-8198334 | java/awt/FileDialog/8003399/bug8003399.java fails in headless mode |
JDK-8200151 | Add 8 JNDI tests to com/sun/jndi/dns/ConfigTests/ |
JDK-8208279 | Add 8 JNDI tests to com/sun/jndi/dns/EnvTests/ |
JDK-8208483 | Add 5 JNDI tests to com/sun/jndi/dns/FactoryTests/ |
JDK-8208542 | Add 4 JNDI tests to com/sun/jndi/dns/ListTests/ |
JDK-8208665 | Amend cross-compilation docs with qemu-debootstrap recipe |
JDK-8210088 | ProblemList gc/epsilon/TestMemoryMXBeans.java |
JDK-8210339 | Add 10 JNDI tests to com/sun/jndi/dns/FedTests/ |
JDK-8211450 | UndetVar::dup is not copying the kind field to the duplicated instance |
JDK-8212160 | JVMTI agent crashes with “assert(_value != 0LL) failed: resolving NULL _value” |
JDK-8212226 | SurfaceManager throws “Invalid Image variant” for MultiResolutionImage (Windows) |
JDK-8213400 | Support choosing group name in keytool keypair generation |
JDK-8213535 | Windows HiDPI html lightweight tooltips are truncated |
JDK-8213698 | Improve devkit creation and add support for linux/ppc64/ppc64le/s390x |
JDK-8214025 | assert(t→singleton()) failed: must be a constant when ScavengeRootsInCode < 2 |
JDK-8214242 | compiler/arguments/TestScavengeRootsInCode.java fails because of missing UnlockDiagnosticVMOptions |
JDK-8214787 | Zero builds fail with “undefined JavaThread::thread_state()” |
JDK-8215583 | Exclude runtime/handshake/HandshakeWalkSuspendExitTest.java |
JDK-8216012 | Infinite loop in RSA KeyPairGenerator |
JDK-8216324 | GetClassMethods is confused by the presence of default methods in super interfaces |
JDK-8217429 | WebSocket over authenticating proxy fails to send Upgrade headers |
JDK-8217976 | test/jdk/java/net/httpclient/websocket/WebSocketProxyTest.java fails intermittently |
JDK-8218021 | Have jarsigner preserve posix permission attributes |
JDK-8218287 | jshell tool: input behavior unstable after 12-ea+24 on Windows |
JDK-8218851 | JVM crash in custom classloader stress test, JDK 12 & 13 |
JDK-8220420 | Cleanup c1_LinearScan |
JDK-8222072 | JVMTI GenerateEvents() sends CompiledMethodLoad events to wrong jvmtiEnv |
JDK-8222286 | Fix for JDK-8213419 is broken on s390 |
JDK-8222527 | HttpClient doesn’t send HOST header when tunelling HTTP/1.1 through http proxy |
JDK-8222533 | jtreg test jdk/internal/platform/cgroup/TestCgroupMetrics.java fails on SLES12.3 linux ppc64le machine |
JDK-8224506 | [TESTBUG] TestDockerMemoryMetrics.java fails with exitValue = 137 |
JDK-8224555 | vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java failed |
JDK-8224650 | Add tests to support X25519 and X448 in TLS |
JDK-8225072 | Add LuxTrust certificate that is expiring in March 2021 to list of allowed but expired certs |
JDK-8225329 | -XX:+PrintBiasedLockingStatistics causes crash during initialization on Windows platforms |
JDK-8225687 | Newly added sspi.cpp in JDK-6722928 still contains some small errors |
JDK-8227006 | [linux] Runtime.availableProcessors execution time increased by factor of 100 |
JDK-8227275 | Within native OOM error handling, assertions may hang the process |
JDK-8227647 | [Graal] Test8009761.java fails due to “RuntimeException: static java.lang.Object compiler.uncommontrap.Test8009761.m3(boolean,boolean) not compiled” |
JDK-8229495 | SIGILL in C2 generated OSR compilation |
JDK-8230910 | libsspi_bridge does not build on Windows 32bit |
JDK-8231310 | Add .jcheck/conf to jfx git repo |
JDK-8232114 | JVM crashed at imjpapi.dll in native code |
JDK-8234147 | Avoid looking up standard charsets in core libraries |
JDK-8234393 | [macos] printing ignores printer tray |
JDK-8234471 | Canvas in webview displayed with wrong scale on Windows |
JDK-8234863 | Increase default value of MaxInlineLevel |
JDK-8235218 | Minimal VM is broken after JDK-8173361 |
JDK-8235456 | Minimal VM is broken after JDK-8212160 |
JDK-8235829 | graal crashes with Zombie.java test |
JDK-8236124 | Minimal VM slowdebug build failed after JDK-8212160 |
JDK-8236512 | PKCS11 Connection closed after Cipher.doFinal and NoPadding |
JDK-8236944 | The legVecZ operand should be limited to zmm0-zmm15 registers |
JDK-8237186 | Fix typo in copyright header of java/io/Reader/TransferTo.java |
JDK-8237499 | JFR: Include stack trace in the ThreadStart event |
JDK-8237512 | AArch64: aarch64TestHook leaks a BufferBlob |
JDK-8237524 | AArch64: String.compareTo() may return incorrect result |
JDK-8237950 | C2 compilation fails with “Live Node limit exceeded limit” during ConvI2L::Ideal optimization |
JDK-8238579 | HttpsURLConnection drops the timeout and hangs forever in read |
JDK-8239105 | Add exception for expiring Digicert root certificates to VerifyCACerts test |
JDK-8239477 | jdk/jfr/jcmd/TestJcmdStartStopDefault.java fails -XX:+VerifyOops with “verify_oop: rsi: broken oop” |
JDK-8239497 | SEGV in EdgeUtils::field_name_symbol(Edge const&) |
JDK-8239886 | Minimal VM build fails after JDK-8237499 |
JDK-8240499 | Enforce whitespace checking for additional source files |
JDK-8240633 | Memory leaks in the implementations of FileChooserUI |
JDK-8240690 | Race condition between EDT and BasicDirectoryModel.FilesLoader.run0() |
JDK-8241234 | Unify monitor enter/exit runtime entries. |
JDK-8241311 | Move some charset mapping tests from closed to open |
JDK-8241797 | Add some tests to the problem list |
JDK-8242029 | AArch64: skip G1 array copy pre-barrier if marking not active |
JDK-8242335 | Additional Tests for RSASSA-PSS |
JDK-8242480 | Negative value may be returned by getFreeSwapSpaceSize() in the docker |
JDK-8242614 | cleanup duplicated test ldap server in some com/sun/jndi/ldap/ tests |
JDK-8242846 | Bring back test/jdk/tools/jlink/plugins/OrderResourcesPluginTest.java |
JDK-8243114 | Implement montgomeryintrinsics on Windows |
JDK-8243290 | Improve diagnostic messages for class verification and redefinition failures |
JDK-8243488 | Add tests for set/get SendBufferSize and getReceiveBufferSize in DatagramSocket |
JDK-8243549 | sun/security/ssl/CipherSuite/NamedGroupsWithCipherSuite.java failed with Unsupported signature algorithm: DSA |
JDK-8243617 | compiler/onSpinWait/TestOnSpinWaitC1.java test uses wrong class |
JDK-8243619 | compiler/codecache/CheckSegmentedCodeCache.java test misses -version |
JDK-8244142 | some hotspot/runtime tests don’t check exit code of forked JVM |
JDK-8244278 | Excessive code cache flushes and sweeps |
JDK-8244282 | test/hotspot/jtreg/compiler/intrinsics/Test8237524.java fails with –illegal-access=deny |
JDK-8244621 | [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11 |
JDK-8244819 | hsdis does not compile with binutils 2.34+ |
JDK-8245051 | c1 is broken if it is compiled by gcc without -fno-lifetime-dse |
JDK-8245168 | jlink should not be treated as a “small” tool |
JDK-8245400 | Upgrade to LittleCMS 2.11 |
JDK-8246381 | VM crashes with “Current BasicObjectLock* below than low_mark” |
JDK-8246434 | Threads::print_on_error assumes that the heap has been set up |
JDK-8246648 | issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after 8242480 |
JDK-8247201 | Print potential pointer value of readable stack memory in hs_err file |
JDK-8247619 | Improve Direct Buffering of Characters |
JDK-8247763 | assert(outer→outcnt() == 2) failed: ‘only phis’ failure in LoopNode::verify_strip_mined() |
JDK-8247867 | Upgrade to freetype 2.10.2 |
JDK-8248190 | Enable Power10 system and implement new byte-reverse instructions |
JDK-8248226 | TestCloneAccessStressGCM fails with -XX:-ReduceBulkZeroing |
JDK-8248347 | windows build broken by JDK-8243114 |
JDK-8248532 | Every time I change keyboard language at my MacBook, Java crashes |
JDK-8248552 | C2 crashes with SIGFPE due to division by zero |
JDK-8248596 | [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled |
JDK-8248745 | Add jarsigner and keytool tests for restricted algorithms |
JDK-8248791 | sun/util/resources/cldr/TimeZoneNamesTest.java fails with -XX:-ReduceInitialCardMarks -XX:-ReduceBulkZeroing |
JDK-8248845 | AArch64: stack corruption after spilling vector register |
JDK-8249176 | Update GlobalSignR6CA test certificates |
JDK-8249183 | JVM crash in “AwtFrame::WmSize” method |
JDK-8249192 | MonitorInfo stores raw oops across safepoints |
JDK-8249602 | C2: assert(cnt == _outcnt) failed: no insertions allowed |
JDK-8249603 | C1: assert(has_error == false) failed: register allocation invalid |
JDK-8249605 | C2: assert(no_dead_loop) failed: dead loop detected |
JDK-8249607 | C2: assert(!had_error) failed: bad dominance |
JDK-8249608 | Vector register used by C2 compiled method corrupted at safepoint |
JDK-8249672 | Include microcode revision in features_string on x86 |
JDK-8249748 | gtest silently ignores bad jvm arguments |
JDK-8249821 | Separate libharfbuzz from libfontmanager |
JDK-8250598 | Hyper-V is detected in spite of running on host OS |
JDK-8250605 | Linux x86_32 builds fail after JDK-8249821 |
JDK-8250636 | iso8601_time returns incorrect offset part on MacOS |
JDK-8250665 | Wrong translation for the month name of May in ar_JO,LB,SY |
JDK-8250772 | Test com/sun/jndi/ldap/NamingExceptionMessageTest.java fails intermittently with javax.naming.ServiceUnavailableException |
JDK-8250825 | C2 crashes with assert(field != __null) failed: missing field |
JDK-8250894 | Provide a configure option to build and run against the platform libharfbuzz |
JDK-8250928 | JFR: Improve hash algorithm for stack traces |
JDK-8250968 | Symlinks attributes not preserved when using jarsigner on zip files |
JDK-8250984 | Memory Docker tests fail on some Linux kernels w/o cgroupv1 swap limit capabilities |
JDK-8251118 | BiasedLocking::preserve_marks should not have a HandleMark |
JDK-8251189 | com/sun/jndi/ldap/LdapDnsProviderTest.java failed due to timeout |
JDK-8251241 | macOS: iconify property doesn’t change after minimize when resizable is false |
JDK-8251257 | NMT: jcmd VM.native_memory scale=1 crashes target VM |
JDK-8251365 | Build failure on AIX after 8250636 |
JDK-8251397 | NPE on ClassValue.ClassValueMap.cacheArray |
JDK-8251456 | [TESTBUG] compiler/vectorization/TestVectorsNotSavedAtSafepoint.java failed OutOfMemoryError |
JDK-8251458 | Parse::do_lookupswitch fails with “assert(_cnt >= 0) failed” |
JDK-8251535 | Partial peeling at unsigned test adds incorrect loop exit check |
JDK-8251858 | Update to Xcode 11.3.1 |
JDK-8251949 | ZGC: Set explicit heap size for compiler/gcbarriers tests |
JDK-8252060 | gstreamer fails to build with gcc 10 |
JDK-8252062 | WebKit build fails with recent VS 2019 compiler |
JDK-8252090 | JFR: StreamWriterHost::write_unbuffered() stucks in an infinite loop OpenJDK (build 13.0.1+9) |
JDK-8252191 | Update to gcc 10.2 on Linux |
JDK-8252415 | Bump update version for OpenJDK: jdk-11.0.10 |
JDK-8252470 | java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows |
JDK-8252497 | Incorrect numeric currency code for ROL |
JDK-8252660 | Shenandoah: support manageable SoftMaxHeapSize option |
JDK-8252679 | Two windows specific FileDIalog tests may fail on some Windows_Server_2016_Standard |
JDK-8252696 | Loop unswitching may cause out of bound array load to be executed |
JDK-8252754 | Hash code calculation of JfrStackTrace is inconsistent |
JDK-8253219 | Epsilon: clean up unnecessary includes |
JDK-8253224 | Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() |
JDK-8253226 | Shenandoah: remove unimplemented ShenandoahStrDedupQueue::verify |
JDK-8253269 | The CheckCommonColors test should provide more info on failure |
JDK-8253284 | Zero OrderAccess barrier mappings are incorrect |
JDK-8253375 | OSX build fails with Xcode 12.0 (12A7209) |
JDK-8253778 | ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads |
JDK-8253791 | Issue with useAppleColor check in CSystemColors.m |
JDK-8254016 | Test8237524 fails with -XX:-CompactStrings option |
JDK-8254081 | java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate |
JDK-8254100 | FX: Update copyright year in docs, readme files to 2021 |
JDK-8254144 | Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp |
JDK-8254166 | Zero: return-type warning in zeroInterpreter_zero.cpp |
JDK-8254177 | (tz) Upgrade time-zone data to tzdata2020b |
JDK-8254185 | Fix Code cache sweeper heuristics for JDK 11 |
JDK-8254190 | [s390] interpreter misses exception check after calling monitorenter |
JDK-8254790 | SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics |
JDK-8254854 | [cgroups v1] Metric limits not properly detected on some join controller combinations |
JDK-8254982 | (tz) Upgrade time-zone data to tzdata2020c |
JDK-8255050 | Add pkcs11/KeyStore/ClientAuth.sh to Problem list |
JDK-8255065 | Zero: accessor_entry misses the IRIW case |
JDK-8255226 | (tz) Upgrade time-zone data to tzdata2020d |
JDK-8255269 | Unsigned overflow in g1Policy.cpp |
JDK-8255365 | Problem list failing client manual tests |
JDK-8255457 | Shenandoah: cleanup ShenandoahMarkTask |
JDK-8255466 | C2 crashes at ciObject::get_oop() const+0x0 |
JDK-8255550 | x86: Assembler::cmpq(Address dst, Register src) encoding is incorrect |
JDK-8255603 | Memory/Performance regression after JDK-8210985 |
JDK-8255760 | Shenandoah: match constants style in ShenandoahMarkTask fallback |
JDK-8255937 | Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java |
JDK-8256264 | Printed GlyphVector outline with low DPI has bad quality on Windows |
JDK-8256427 | Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX |
JDK-8256452 | Integrate missing part of JDK-8232370 to 11u |
JDK-8256483 | [TESTBUG] serviceability/jvmti/GetClassMethods/libOverpassMethods.c fails to compile on gcc 4.4.x |
JDK-8256557 | libharfbuzz fails to link on gcc 4.4.x due to -Wl,-z,defs |
JDK-8256618 | Zero: Linux x86_32 build still fails |
JDK-8256736 | Zero: GTest tests fail with “unsuppported vm variant” |
JDK-8256809 | Annotation processing causes NPE during flow analysis |
JDK-8257181 | s390x builds are very noisy with gc-sections messages |
JDK-8257242 | [macOS] Java app crashes while switching input methods |
JDK-8257545 | SunJSSE FIPS regression in key exchange after JDK-8171279 11u backport |
JDK-8257641 | Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false |
JDK-8257701 | Shenandoah: objArrayKlass metadata is not marked with chunked arrays |