Данный релиз соответствует OpenJDK 18.0.2+10, номер версии Axiom JDK - 18
Axiom является сертифицированным Java SE 18-совместимым дистрибутивом OpenJDK 18, который работает на серверах (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). Axiom JDK имеет следующие дополнения:
Пожалуйста, прочитайте примечания к релизу Oracle JDK 18.0.2 для получения дополнительной информации о функционале JDK 18. В этом документе описываются особенности дистрибутива Axiom по сравнению с дистрибутивом Oracle JDK 18.
Axiom поддерживается в следующих ОС:
Также известно, Axiom JDK работает с некоторыми другими дистрибутивами Linux и версиями Windows.
Примечание: Минимальная поддерживаемая версия ядра Linux - 2.6.18, версия GLIBC - 2.6. AxiomFX работает на всех поддерживаемых версиях Ubuntu, семействе Red Hat Linux начиная с версии 7.x и SUSE с бэкэндом GTK2.
Axiom протестирован и сертифицирован на Raspberry Pi 2, 3 и 4 под управлением следующих ОС:
Также есть успешный опыт запуска и работы на Debian (armhf) и Ubuntu (armhf).
Axiom JDK 18 распространяется в виде .msi, .dmg, .deb, .rpm, .zip и .tar.gz. Пожалуйста, выберите формат, который наиболее подходит для ваших целей.
Axiom 18 содержит весь функционал, поддерживаемый OpenJDK 18.
С появлением Jigsaw в JDK 9 и минимальной виртуальной машины (Minimal VM) теперь можно создать среду исполнения, достаточную для запуска приложения и в то же время оптимизированную по размеру. Чтобы создать среду выполнения только с минимальной виртуальной машиной, добавьте опцию - vm=minimal jlink.
Axiom JDK продолжает поддерживать AOT и Graal JIT. Поскольку в сборках OpenJDK 18 эти экспериментальные функции признаны устаревшими, для безошибочной компиляции нативных образов рекомендуется использовать Axiom Native Image Kit.
По умолчанию Axiom использует серверную виртуальную машину (Server VM). Серверная виртуальная машина и клиентская виртуальная машина могут быть включены с помощью параметров командной строки -server и -client соответственно. В случае, если требуется минимальный размер среды исполенения, можно использовать Minimal VM, которая оптимизирована по размеру. Minimal VM имеет только компилятор C1 JIT, Serial GC и не имеет функционала Serviceability. Minimal VM можно включить параметром командной строки -minimal.
Axiom JDK 18 поставляется в комплекте со сборкой платформы AxiomFX, основанной на OpenJFX. В следующих таблицах перечислены состояния модулей Java FX дистрибутива Axiom.
Для armhf работают следующие графические конвейеры: EGL, SW (direct framebuffer) и GTK. По умолчанию Axiom пытается использовать конвейер EGL, который требует наличия библиотек EGL. Если они не найдены, реализация возвращается к программному обеспечению.
Используйте следующие параметры командной строки, чтобы указать конвейер рендеринга:
* Не поддерживается на Raspberry Pi 4.
Дополнительная информация доступна на следующей wiki странице.
Axiom JDK 18 для 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
Axiom JDK содержит исправления уязвимостей Oracle Java SE. Пожалуйста, обратитесь к документации Oracle для получения деталей о проблемах, исправленных в данной версии.
Issue | Description |
---|---|
8287175 | Backout 8270480: Better path to expressing Xpaths |
8285407 | Improve Xalan supports |
8285515 | (dc) DatagramChannel.disconnect fails with “Invalid argument” on macOS 12.4 |
8287644 | [18u] Backport of JDK-8240903 causes test errors |
8286855 | javac error on invalid jar should only print filename |
8282080 | Lambda deserialization fails for Object method references on interfaces |
8285517 | System.getenv() returns unexpected value if environment variable has non ASCII character |
8287378 | GHA: Update cygwin to fix issues in langtools tests on Windows |
8286594 | (zipfs) Mention paths with dot elements in ZipException and cleanups |
8286444 | javac errors after JDK-8251329 are not helpful enough to find root cause |
8284094 | Memory leak in invoker_completeInvokeRequest() |
8287162 | (zipfs) Performance regression related to support for POSIX file permissions |
8240903 | Add test to check that jmod hashes are reproducible |
8287336 | GHA: Workflows break on patch versions |
8287119 | Add Distrust.java to ProblemList |
8287202 | GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event |
8286029 | Add classpath exemption to globals_vectorApiSupport_***.S.inc |
8285956 | (fs) Excessive default poll interval in PollingWatchService |
8282676 | Improve subject handling |
8286601 | Mac Aarch: Excessive warnings to be ignored for build jdk |
8285523 | Improve test java/io/FileOutputStream/OpenNUL.java |
8283469 | Don’t use memset to initialize members in FileMapInfo and fix memory leak |
8285921 | serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine |
8286283 | assert(func2 == 0 && func3 == 0) failed: not unary |
8286013 | Incorrect test configurations for compiler/stable/TestStableShort.java |
8285828 | runtime/execstack/TestCheckJDK.java fails with zipped debug symbols |
8284992 | Fix misleading Vector API doc for LSHR operator |
8286198 | [linux] Fix process-memory information |
8282219 | jdk/java/lang/ProcessBuilder/Basic.java fails on AIX |
8284848 | C2: Compiler blackhole arguments should be treated as globally escaping |
8283022 | com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297 |
8284023 | java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo |
8280956 | Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y |
8285686 | Upgrade to FreeType 2.12.0 |
8284532 | Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler |
8285394 | Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id() |
8282170 | JVMTI SetBreakpoint metaspace allocation test |
8284549 | JFR: FieldTable leaks FieldInfoTable member |
8284620 | CodeBuffer may leak _overflow_arena |
8283422 | Create a new test for JDK-8254790 |
8284458 | CodeHeapState::aggregate() leaks blob_name |
8283725 | Launching java with “-Xlog:gc=trace,safepoint=trace,class*=trace” crashes the JVM |
8284808 | change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2 |
8280476 | [macOS] : hotspot arm64 bug exposed by latest clang |
8284622 | Update versions of some Github Actions used in JDK workflow |
8282929 | Localized monetary symbols are not reflected in toLocalizedPattern return value |
8284866 | Add test to JDK-8273056 |
8282042 | [testbug] FileEncodingTest.java depends on default encoding |
8284033 | Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c |
8285445 | cannot open file “NUL:” |
8284920 | Incorrect Token type causes XPath expression to return incorrect results |
8284548 | Invalid XPath expression causes StringIndexOutOfBoundsException |
8284370 | Improve zlib usage |
8283379 | Memory leak in FileHeaderHelper |
8284369 | TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4 |
8284507 | GHA: Only check test results if testing was not skipped |
8284389 | Improve stability of GHA Pre-submit testing by caching cygwin installer |
8283217 | Leak FcObjectSet in getFontConfigLocations() in fontpath.c |
8281638 | jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions |
8281318 | Improve jfr/event/allocation tests reliability |
8277893 | Arraycopy stress tests |
8282194 | C1: Missing side effects of dynamic constant linkage |
8281811 | assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 |
8282045 | When loop strip mining fails, safepoints are removed from loop anyway |
8279822 | CI: Constant pool entries in error state are not supported |
8283408 | Fix a C2 crash when filling arrays with unsafe |
8282590 | C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don’t process dead nodes |
8283451 | C2: assert(_base == Long) failed: Not a Long |
8283187 | C2: loop candidate for superword not always unrolled fully if superword fails |
8275337 | C1: assert(false) failed: live_in set of first block must be empty |
8282231 | x86-32: runtime call to SharedRuntime::ldiv corrupts registers |
8272493 | Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2 |
8277055 | Assert “missing inlining msg” with -XX:+PrintIntrinsics |
8282172 | CompileBroker::log_metaspace_failure is called from non-Java/compiler threads |
8282312 | Minor corrections to evbroadcasti32x4 intrinsic on x86 |
8271055 | Crash during deoptimization with “assert(bb->is_reachable()) failed: getting result from unreachable basicblock” with -XX:+VerifyStack |
8279219 | [REDO] C2 crash when allocating array of size too large |
8280600 | C2: assert(!had_error) failed: bad dominance |
8281544 | assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/ |
8280901 | MethodHandle::linkToNative stub is missing w/ -Xint |
8280867 | Cpuid1Ecx feature parsing is incorrect for AMD CPUs |
8283641 | Large value for CompileThresholdScaling causes assert |
8282592 | C2: assert(false) failed: graph should be schedulable |
8282874 | Bad performance on gather/scatter API caused by different IntSpecies of indexMap |
8280799 | РЎ2: assert(false) failed: cyclic dependency prevents range check elimination |
8256368 | Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers |
8271008 | appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom |
8281822 | Test failures on non-DTrace builds due to incomplete DTrace* flags handling |
8281266 | [JVMCI] MetaUtil.toInternalName() doesn’t handle hidden classes correctly |
8282887 | Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows |
8282628 | Potential memory leak in sun.font.FontConfigManager.getFontConfig() |
8282551 | Properly initialize L32X64MixRandom state |
8281181 | Do not use CPU Shares to compute active processor count |
8284012 | Correction version-numbers.conf after merge |
8283190 | Improve MIDI processing |
8283555 | G1: Concurrent mark accesses uninitialized BOT of closed archive regions |
8278381 | [GCC 11] Address::make_raw() does not initialize rspec |
8281771 | Crash in java_lang_invoke_MethodType::print_signature |
8281274 | deal with ActiveProcessorCount in os::Linux::print_container_info |
8278794 | Infinite loop in DeflaterOutputStream.finish() |
8278549 | UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15 |
8283350 | (tz) Update Timezone Data to 2022a |
8281866 | Enhance MethodHandle invocations |
8278065 | Refactor subclassAudits to use ClassValue |
8280041 | Retry loop issues in java.io.ClassCache |
8277072 | ObjectStreamClass caches keep ClassLoaders alive |
8282444 | Module finder incorrectly assumes default file system path-separator character |
8282583 | Update BCEL md to include the copyright notice |
8281859 | Improve class compilation |
8281168 | Micro-optimize VarForm.getMemberName for interpreter |
8279668 | x86: AVX2 versions of vpxor should be asserted |
8272249 | Better properties of loaded Properties |
8279958 | Provide configure hints for Alpine/apk package managers |
8282225 | GHA: Allow one concurrent run per PR only |
8283017 | GHA: Workflows break with update release versions |
8281615 | Deadlock caused by jdwp agent |
8282295 | SymbolPropertyEntry::set_method_type fails with assert |
8283037 | Update jdk18u fix version to 18.0.2 |
8274524 | SSLSocket.close() hangs if it is called during the ssl handshake |
8282397 | createTempFile method of java.io.File is failing when called with suffix of spaces character |
8270480 | Better path to expressing Xpaths |
8272243 | Improve DER parsing |
8282300 | Throws NamingException instead of InvalidNameException after JDK-8278972 |
8277608 | Address IP Addressing |
8281093 | JDK 11.0.14 violates Attribute-Value Normalization in the XML specification 1.0 |
8281388 | Change wrapping of EncryptedPrivateKeyInfo |
8278356 | Improve file creation |
8270504 | Better Xpath expression handling |
8272588 | Enhanced recording parsing |
8272594 | Better record of recordings |
8272261 | Improve JFR recording file processing |
8277672 | Better invocation handler handling |
8269938 | Enhance XML processing passes redux |
8278972 | Improve URL supports |
8272255 | Completely handle MIDI files |
8280674 | Bump version numbers for July CPU |
8282134 | Certain regex can cause a JS trap in WebView |
8280841 | Update SQLite to 3.37.2 |
8286256 | Update libxml2 to 2.9.14 8286257: Update libxslt to 1.1.35 |
8285475 | Create release notes for 18.0.1 |
8285181 | Change JavaFX release version to 18.0.2 in jfx18 branch |
8283328 | Update libxml2 to 2.9.13 |