Данный релиз соответствует OpenJDK 14.0.2+13, номер версии Axiom JDK - 14.
Axiom является сертифицированным Java SE 14-совместимым дистрибутивом OpenJDK 14.0.2, который работает на серверах (Linux x86_64, Linux ARM64, Solaris SPARC, Solaris x64, Windows 64), настольных компьютерах (Windows 64, Windows 32, Mac, Linux x86_64) и встроенных устройствах (Linux ARM64, Linux ARMv7, включая Raspberry Pi 2 & 3 (ARMv6 hardfloat). Axiom JDK имеет следующие дополнения:
Пожалуйста, прочитайте примечания к релизу Oracle JDK 14.0.2 для получения дополнительной информации о функционале JDK 14. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 14.
Axiom поддерживается в следующих ОС:
Также известно, Axiom JDK работает с некоторыми другими дистрибутивами Linux и версиями Windows.
Примечание: Минимальная поддерживаемая версия ядра Linux - 2.6.18, версия GLIBC - 2.6. AxiomFX работает на всех поддерживаемых версиях Ubuntu, семействе Red Hat Linux начиная с версии 7.x и SUSE с бэкэндом GTK2.
Axiom is tested and certified on Raspberry Pi 2, 3 and 4 running the following OSes:
It is also known to work with Debian (armhf) and Ubuntu (armhf).
Axiom JDK 14.0.2 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.
Axiom 14.0.2 содержит весь функционал, поддерживаемый OpenJDK 14.
С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.
По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.
Axiom JDK 14 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.
* - за исключением сборок для armhf.
Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.
Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:
* Не поддерживается на Raspberry Pi 4.
Дополнительная информация доступна на следующей wiki странице.
Axiom JDK 14 для armhf поставляется со встроенным модулем реализации API ввода-вывода (DIO) устройства OpenJDK. DIO предоставляет Java API для доступа к выводам Raspberry PI GPIO и для связи с периферийными устройствами:
Дополнительная информация доступна на следующей wiki странице.
С 2017 года в Raspbian OS изменилось расположение бибилитек libEGL.so и libGLESv2.so для чипа Broadcom. Если вы хотите использовать аппаратное ускорение EGL, доступное в видеодрайверах Broadcom в AxiomFX, при работе в Raspbian OS, выполните следующую команду:
cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so
BellSoft Axiom содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.
Issue | Description |
---|---|
8044365 | (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9) |
8183369 | RFC unconformity of HttpURLConnection with proxy |
8220503 | Move ShenandoahTerminatorTerminator::should_exit_termination out of header |
8221741 | ClassCastException can happen when fontconfig.properties is used |
8223935 | PIT: java/awt/font/WindowsIndicFonts.java fails on windows10 |
8225068 | Remove DocuSign root certificate that is expiring in May 2020 |
8225069 | Remove Comodo root certificate that is expiring in May 2020 |
8225216 | gc/logging/TestMetaSpaceLog.java doesn’t work for Shenandoah |
8227269 | Slow class loading when running with JDWP |
8230613 | Better ASCII conversions |
8230853 | Shenandoah: replace leftover assert(is_in(…)) with rich asserts |
8231118 | ARM32: Math tests failures |
8231572 | Use -lobjc instead of -fobjc-link-runtime in libosxsecurity |
8231800 | Better listing of arrays |
8232014 | Expand DTD support |
8233234 | Better Zip Naming |
8233239 | Enhance TIFF support |
8233255 | Better Swing Buttons |
8234032 | Improve basic calendar services |
8234042 | Better factory production of certificates |
8234146 | compiler/jsr292/ContinuousCallSiteTargetChange.java times out on SPARC |
8234418 | Better parsing with CertificateFactory |
8234836 | Improve serialization handling |
8235332 | TestInstanceCloneAsLoadsStores.java fails with -XX:+StressGCM |
8235833 | PosixPlatform.cpp should not include sysctl.h |
8236039 | JSSE Client does not accept status_request extension in CertificateRequest messages for TLS 1.3 |
8236191 | Enhance OID processing |
8236759 | ShouldNotReachHere in PhaseIdealLoop::verify_strip_mined_scheduling |
8236851 | Shenandoah: More details in Traversal GC event messages |
8236867 | Enhance Graal interface handling |
8237117 | Better ForkJoinPool behavior |
8237192 | Generate stripped/public pdbs on Windows for jdk images |
8237217 | Incorrect G1StringDedupEntry type used in StringDedupTable destructor |
8237474 | Default SSLEngine should create in server role |
8237543 | Shenandoah: More asserts around code roots |
8237592 | Enhance certificate verification |
8237632 | Shenandoah: accept NULL fwdptr to cooperate with JVMTI and JFR |
8237780 | Shenandoah: More reliable nmethod verification |
8237837 | Shenandoah: assert(mem == __null) failed: only one safepoint |
8237859 | C2: Crash when loads float above range check |
8237879 | make 4.3 breaks build |
8237889 | Update libxml2 to version 2.9.10 |
8237945 | CTW: C2 compilation fails with assert(just_allocated_object(alloc_ctl) == ptr) failed: most recent allo |
8237951 | CTW: C2 compilation fails with “malformed control flow” |
8238002 | Better matrix operations |
8238013 | Enhance String writing |
8238190 | [JVMCI] Fix single implementor speculation for diamond shapes. |
8238247 | CTW runner should sweep nmethods more aggressively |
8238356 | CodeHeap::blob_count() overestimates the number of blobs |
8238366 | CTW runner closes standard output on exit |
8238385 | CTW: C2 (Shenandoah) compilation fails with “Range check dependent CastII node was not removed” |
8238438 | SuperWord::co_locate_pack picks memory state of first instead of last load |
8238534 | Deep sign macOS bundles before bundle archive is being created |
8238721 | Add failing client jtreg tests to the Problem List |
8238756 | C2: assert(((n) == __null || !VerifyIterativeGVN || !((n)->is_dead()))) failed: can not use dead node |
8238804 | Enhance key handling process |
8238811 | C2: assert(i >= req() || i == 0 || is_Region() || is_Phi()) with -XX:+VerifyGraphEdges |
8238843 | Enhanced font handing |
8238851 | Shenandoah: C1: Resolve into registers of correct type |
8238920 | Better Buffer support |
8238925 | Enhance WAV file playback |
8239005 | [TESTBUG] test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPages.java: exeinvoke.c: must initialize static state before calling do_overflow() |
8239081 | Shenandoah: Consolidate C1 LRB and native barriers |
8239142 | C2’s UseUniqueSubclasses optimization is broken for array accesses |
8239354 | Shenandoah: minor enhancements to traversal GC |
8239456 | vtable stub generation: assert failure (code size estimate) |
8239786 | Shenandoah: print per-cycle statistics |
8239787 | AArch64: String.indexOf may incorrectly handle empty strings |
8239798 | SSLSocket closes socket both socket endpoints on a SocketTimeoutException |
8239852 | java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed |
8239868 | Shenandoah: ditch C2 node limit adjustments |
8239904 | Shenandoah: accumulated penalties should not be over 100% of capacity |
8239926 | Shenandoah: Shenandoah needs to mark nmethod’s metadata |
8239931 | [win][x86] vtable stub generation: assert failure (code size estimate) follow-up |
8240069 | Shenandoah: turn more flags diagnostic |
8240070 | Shenandoah: remove obsolete ShenandoahCommonGCStateLoads |
8240076 | Shenandoah: pacer should cover reset and preclean phases |
8240119 | Less Affine Transformations |
8240197 | Cannot start JVM when $JAVA_HOME includes CJK characters |
8240215 | Shenandoah: remove ShenandoahAllocationTrace |
8240216 | Shenandoah: remove ShenandoahTerminationTrace |
8240217 | Shenandoah: remove ShenandoahEvacAssist |
8240220 | IdealLoopTree::dump_head predicate printing is broken |
8240223 | Use consistent predicate order in and with PhaseIdealLoop::find_predicate |
8240227 | Loop predicates should be copied to unswitched loops |
8240286 | [TESTBUG] Test command error in hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java |
8240315 | Shenandoah: Rename ShLBN::get_barrier_strength() |
8240482 | Improved WAV file playback |
8240511 | Shenandoah: parallel safepoint workers count should be ParallelGCThreads |
8240534 | Shenandoah: ditch debug safepoint timeout adjustment |
8240589 | OtherRegionsTable::_num_occupied not updated correctly |
8240629 | argfiles parsing broken for argfiles with comment cross 4096 bytes chunk |
8240671 | Shenandoah: refactor ShenandoahPhaseTimings |
8240725 | Some functions might not work with CJK character |
8240749 | Shenandoah: refactor ShenandoahUtils |
8240750 | Shenandoah: remove leftover files and mentions of ShenandoahAllocTracker |
8240868 | Shenandoah: remove CM-with-UR piggybacking cycles |
8240872 | Shenandoah: Avoid updating new regions from start of evacuation |
8240873 | Shenandoah: Short-cut arraycopy barriers |
8240915 | Shenandoah: Remove unused fields in init mark tasks |
8240917 | Shenandoah: Avoid scanning thread code roots twice in all root scanner |
8240948 | Shenandoah: cleanup not-forwarded-objects paths after JDK-8240868 |
8240972 | macOS codesign fail on macOS 10.13.5 or older |
8241062 | Shenandoah: rich asserts trigger “empty statement” inspection |
8241081 | Shenandoah: Do not modify update-watermark concurrently |
8241093 | Shenandoah: editorial changes in flag descriptions |
8241108 | Glib improvements |
8241139 | Shenandoah: distribute mark-compact work exactly to minimize fragmentation |
8241142 | Shenandoah: should not use parallel reference processing with single GC thread |
8241144 | Javadoc is not generated for new module jdk.nio.mapmode |
8241296 | Segfault in JNIHandleBlock::oops_do() |
8241351 | Shenandoah: fragmentation metrics overhaul |
8241379 | Update JCEKS support |
8241435 | Shenandoah: avoid disabling pacing with “aggressive” |
8241445 | Fix copyright in test/jdk/tools/launcher/ArgFileSyntax.java |
8241520 | Shenandoah: simplify region sequence numbers handling |
8241522 | Manifest improved jar headers redux |
8241534 | Shenandoah: region status should include update watermark |
8241568 | (fs) UserPrincipalLookupService.lookupXXX failure with IOE “Operation not permitted” |
8241583 | Shenandoah: turn heap lock asserts into macros |
8241586 | compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java fails on aarch64 |
8241603 | ZGC: java/lang/management/MemoryMXBean/MemoryTestZGC.sh crashes on macOS |
8241668 | Shenandoah: make ShenandoahHeapRegion not derive from ContiguousSpace |
8241673 | Shenandoah: refactor anti-false-sharing padding |
8241675 | Shenandoah: assert(n->outcnt() > 0) at shenandoahSupport.cpp:2858 with java/util/Collections/FindSubList.java |
8241692 | Shenandoah: remove ShenandoahHeapRegion::_reserved |
8241700 | Shenandoah: Fold ShenandoahKeepAliveBarrier flag into ShenandoahSATBBarrier |
8241740 | Shenandoah: remove ShenandoahHeapRegion::_heap |
8241743 | Shenandoah: refactor and inline ShenandoahHeap::heap() |
8241748 | Shenandoah: inline MarkingContext TAMS methods |
8241750 | x86_32 build failure after JDK-8227269 |
8241765 | Shenandoah: AARCH64 need to save/restore call clobbered registers before calling keepalive barrier |
8241838 | Shenandoah: no need to trash cset during final mark |
8241841 | Shenandoah: ditch one of allocation type counters in ShenandoahHeapRegion |
8241842 | Shenandoah: inline ShenandoahHeapRegion::region_number |
8241844 | Shenandoah: rename ShenandoahHeapRegion::region_number |
8241845 | Shenandoah: align ShenandoahHeapRegions to cache lines |
8241900 | Loop unswitching may cause dependence on null check to be lost |
8241926 | Shenandoah: only print heap changes for operations that directly affect it |
8241983 | Shenandoah: simplify FreeSet logging |
8241984 | Shenandoah: enhance GCTimer and JFR support |
8241985 | Shenandoah: simplify collectable garbage logging |
8242040 | Shenandoah: print allocation failure type |
8242041 | Shenandoah: adaptive heuristics should account evac reserve in free target |
8242042 | Shenandoah: tune down ShenandoahGarbageThreshold |
8242054 | Shenandoah: New incremental-update mode |
8242075 | Shenandoah: rename ShenandoahHeapRegionSize flag |
8242082 | Shenandoah: Purge Traversal mode |
8242083 | Shenandoah: split “Prepare Evacuation” tracking into cset/freeset counters |
8242089 | Shenandoah: per-worker stats should be summed up, not averaged |
8242101 | Shenandoah: coalesce and parallelise heap region walks during the pauses |
8242107 | Shenandoah: Fix aarch64 build after JDK-8242082 |
8242114 | Shenandoah: remove ShenandoahHeapRegion::reset_alloc_metadata_to_shared |
8242130 | Shenandoah: Simplify arraycopy-barrier dispatching |
8242136 | Better XML namespace handling |
8242211 | Shenandoah: remove ShenandoahHeuristics::RegionData::_seqnum_last_alloc |
8242212 | Shenandoah: initialize ShenandoahHeuristics::_region_data eagerly |
8242213 | Shenandoah: remove ShenandoahHeuristics::_bytes_in_cset |
8242217 | Shenandoah: Enable GC mode to be diagnostic/experimental and have a name |
8242227 | Shenandoah: transit regions to cset state when adding to collection set |
8242228 | Shenandoah: remove unused ShenandoahCollectionSet methods |
8242229 | Shenandoah: inline ShenandoahHeapRegion liveness-related methods |
8242267 | Shenandoah: regions space needs to be aligned by os::vm_allocation_granularity() |
8242271 | Shenandoah: add test to verify GC mode unlock |
8242273 | Shenandoah: accept either SATB or IU barriers, but not both |
8242283 | Can’t start JVM when java home path includes non-ASCII character |
8242301 | Shenandoah: Inline LRB runtime call |
8242316 | Shenandoah: Turn NULL-check into assert in SATB slow-path entry |
8242353 | Shenandoah: micro-optimize region liveness handling |
8242365 | Shenandoah: use uint16_t instead of jushort for liveness cache |
8242375 | Shenandoah: Remove ShenandoahHeuristic::record_gc_start/end methods |
8242379 | [TESTBUG] compiler/loopopts/TestLoopUnswitchingLostCastDependency.java fails with release VMs |
8242400 | Shenandoah: Restore logging to pre-jdk8241984 format |
8242430 | Correct links in javadoc of OperatingSystemMXBean |
8242470 | Update Xerces to Version 2.12.1 |
8242498 | Invalid “sun.awt.TimedWindowEvent” object leads to JVM crash |
8242625 | Shenandoah: restore heap logging for Degenerated/Full cycles |
8242638 | Shenandoah: restore heap logging for uncommit |
8242641 | Shenandoah: clear live data and update TAMS optimistically |
8243008 | Shenandoah: TestVolatilesShenandoah test failed on aarch64 |
8243059 | Build fails when –with-vendor-name contains a comma |
8243238 | Shenandoah: explicit GC request should wait for a complete GC cycle |
8243255 | Font size is large in JavaFX app with enabled Monocle on Raspberry Pi |
8243291 | Shenandoah: no need to retire TLABs at Init Update Refs |
8243301 | Shenandoah: ditch ShenandoahAllowMixedAllocs |
8243307 | Shenandoah: remove ShCollectionSet::live_data |
8243395 | Shenandoah: demote guarantee in ShenandoahPhaseTimings::record_workers_end |
8243460 | Shenandoah: purge init_update_refs_prepare counter |
8243463 | Shenandoah: ditch total_pause counters |
8243464 | Shenandoah: print statistic counters in time order |
8243465 | Shenandoah: ditch unused pause_other, conc_other counters |
8243478 | Shenandoah: avoid implicit worker_id = 0 |
8243487 | Shenandoah: make _num_phases illegal phase type |
8243494 | Shenandoah: set counters once per cycle |
8243495 | Shenandoah: print root statistics for concurrent weak/strong root phases |
8243541 | (tz) Upgrade time-zone data to tzdata2020a |
8243573 | Shenandoah: rename GCParPhases and related code |
8243578 | Shenandoah: Cleanup ShenandoahStringDedup::parallel_oops_do() |
8243848 | Shenandoah: Windows build fails after JDK-8239786 |
8244180 | Shenandoah: carry Phase to ShWorkerTimingsTracker explicitly |
8244200 | Shenandoah: build breakages after JDK-8241743 |
8244226 | Shenandoah: per-cycle statistics contain worker data from previous cycles |
8244326 | Shenandoah: global statistics should not accept bogus samples |
8244328 | Shenandoah: move ShenandoahThreadLocalData::_disarmed_value initialization |
8244420 | Shenandoah: Ensure _disarmed_value offset < 128 |
8244551 | Shenandoah: Fix racy update of update_watermark |
8244663 | Shenandoah: C2 assertion fails in Matcher::collect_null_checks |
8244721 | CTW: C2 (Shenandoah) compilation fails with “unexpected infinite loop graph shape” |
8244730 | Shenandoah: gc/shenandoah/options/TestHeuristicsUnlock.java should only verify the heuristics |
8244732 | Shenandoah: move heuristics code to gc/shenandoah/heuristics |
8244737 | Shenandoah: move mode code to gc/shenandoah/mode |
8244739 | Shenandoah: break superclass dependency on ShenandoahNormalMode |
8244740 | Shenandoah: rename ShenandoahNormalMode to ShenandoahSATBMode |
8244821 | Shenandoah: disarmed_value is initialized at wrong place |
8244853 | The static build of libextnet is missing the JNI_OnLoad_extnet function |
8245047 | [PPC64] C2: ReverseBytes + Load always match to unordered Load (acquire semantics missing) |
8245422 | Better Pisces rasterizing |
8245461 | Shenandoah: refine mode name()-s |
8245463 | Shenandoah: refine ShenandoahPhaseTimings constructor arguments |
8245726 | Shenandoah: lift/cleanup ShenandoahHeuristics names and properties |
8245754 | Shenandoah: ditch ShenandoahAlwaysPreTouch |
8245757 | Shenandoah: AlwaysPreTouch should not disable heap resizing or uncommits |
8245812 | Shenandoah: compute root phase parallelism |
8245814 | Shenandoah: reconsider format specifiers for stats |
8245825 | Shenandoah: Remove diagnostic flag ShenandoahConcurrentScanCodeRoots |
8246031 | SSLSocket.getSession() doesn’t close connection for timeout/ interrupts |
8246097 | Shenandoah: limit parallelism in CLDG root handling |
8246100 | Shenandoah: walk roots in more efficient order |
8246162 | Shenandoah: full GC does not mark code roots when class unloading is off |
8246342 | Shenandoah: remove unused ShenandoahIsMarkedNextClosure |
8246613 | Choose the default SecureRandom algo based on registration ordering |
8247310 | Shenandoah: pacer should not affect interrupt status |
8247358 | Shenandoah: reconsider free budget slice for marking |
8247474 | Shenandoah: Windows build warning after JDK-8247310 |
8247560 | Shenandoah: heap iteration holds root locks all the time |
8248505 | Unexpected NoSuchAlgorithmException when using secure random impl from BCFIPS provider |