Состоялся релиз Liberica 8u282, 11.0.10 и 15.0.2

Состоялся релиз Liberica 8u282, 11.0.10 и 15.0.2


Январь 21, 2021


В январе BellSoft выпустила новые версии своей среды исполнения Java: 8u282, 11.0.10 и 15.0.2. Всего в этом релизе была исправлена 401 ошибка (139 пришлось на счёт JDK 8, 200 — JDK 11, 62 — текущей JDK 15). Обновление включает в себя несколько свежих функций, отобранных инженерами компании согласно направлениям развития IT-индустрии.

1. Поддержка Apple Silicon

Все новые сборки Liberica JDK 8, 11 и 15 нативно работают на устройствах Apple с процессорами M1. Это стало возможно в том числе благодаря поддержке LibericaFX в LTS-версии JDK 11 под системы с 64-битной архитектурой ARM (AArch64), которую мы реализовали в июле 2020 года. Теперь владельцы Mac и Macbook, перешедшие на фирменные чипы Apple Silicon, смогут в полном объёме использовать возможности JavaFX в Liberica JDK Full — включая модули Graphics, Controls, Media и Webkit — для создания сложных визуальных интерфейсов.

Работа функций JVM с Apple M1 в рамках данного релиза: В рамках данного релиза поддерживаются следующие функции JVM: все сборщики мусора, JIT-компиляторы C1 и C2. Не поддерживаются: компилятор Graal JIT, AOT-компиляция, Class Data Sharing.

2. Уменьшенные образы JDK в раннем доступе

Comparation

В одной из следующих статей мы расскажем, как инженеры BellSoft создают крошечные образы Liberica JDK и JRE для облачных окружений и микросервисов. А уже сегодня вы можете скачать сборки раннего доступа с образами, уменьшенными ещё на 3–6 MB, до 15%. Таким образом, мы продолжаем сокращать размеры Docker-контейнеров с нашей средой исполнения Java, что означает более эффективное развёртывание приложений и дополнительную экономию времени и средств.

Готовые сборки Liberica JDK EA Lite доступны по следующим ссылкам:

Name Size (MB) SHA1
JDK 11.0.10+10 EA Linux x86 Lite DEB 66.8 1407bf71325383afd3ccda8ee30e79454c943358
JDK 11.0.10+10 EA Linux x86 Lite RPM 68 ade756f0e0e4e9267e8bee7033f5565ef2f53df7
JDK 11.0.10+10 EA Linux x86 Lite TAR.GZ 70.8 f0135fc028a7085681d3aadf23b0a9c79169e9de
JDK 11.0.10+10 EA Linux ARM Lite DEB 66 8182fd5d7878528e73d37e62e1d2478d56bb97b7
JDK 11.0.10+10 EA Linux ARM Lite RPM 67.4 d1fbca79c317a4a0789d2997e7ec2fc7f7ad391f
JDK 11.0.10+10 EA Linux ARM Lite TAR.GZ 70.4 60f01b991ce6a2c63f354763ffba11a95e387eb9
JDK 11.0.10+10 EA Alpine Linux ARM (musl) Lite APK 69.1 4cb9aa8cccfba4f55a70c5f2fb33a625ac244d51
JDK 11.0.10+10 EA Linux ARM (musl) Lite TAR.GZ 70 c00dd67f9c409254b35b9f2abcf7b19ebb785464
JDK 11.0.10+10 EA Alpine Linux x86 (musl) Lite APK 69.5 86adea0b0a959da738ba207c5f5142b8cecec2a1
JDK 11.0.10+10 EA Linux x86 (musl) Lite TAR.GZ 70.5 2dc43d1d14406d3a422ff72f23512a11e9c0f897
Name Size (MB) SHA1
JDK 15.0.2+9 EA Linux x86 Lite DEB 67.4 cc6c7b60d4d06c807eda46bdeda6da5f603ee711
JDK 15.0.2+9 EA Linux x86 Lite RPM 68.7 3650759c7524d5c5833c76e8014d13980f748fd2
JDK 15.0.2+9 EA Linux x86 Lite TAR.GZ 71.1 5240d851a980c5d6572dac08c8bd155f170714fb
JDK 15.0.2+9 EA Alpine Linux x86 (musl) Lite APK 70.1 c9ad505a10eca36830bd086ebb922ebeacdbc512
JDK 15.0.2+9 EA Linux x86 (musl) Lite TAR.GZ 71 a03f81fbf17a1d27fb4fcd2bfaf594aede6b8a2a
JDK 15.0.2+9 EA Linux ARM Lite DEB 66.8 66f332f395a62cade6e12df996ab0534372f3d84
JDK 15.0.2+9 EA Linux ARM Lite RPM 68.2 44d76a4adb7b6e44d9dd59e372ee4e32850c5ff8
JDK 15.0.2+9 EA Linux ARM Lite TAR.GZ 70.8 e2dbff3d98137064b9d93cf6bbaa7eec27669bd5
JDK 15.0.2+9 EA Alpine Linux ARM (musl) Lite APK 69.9 e27ab35b48530e483a17a9faf65e19a210793d9e
JDK 15.0.2+9 EA Linux ARM (musl) Lite TAR.GZ 70.8 c2f92bc87d3d0953f3f9eb409ca4ef6de74dd344

Бинарные файлы Liberica JDK EA, которые можно использовать для создания рантайма с произвольным набором модулей при помощи jlink, доступны по ссылкам ниже:

Name Size (MB) SHA1
JDK 11.0.10+10 EA Linux x86 DEB 156.1 39fa6a91d82bbe400231a08bd803a9356bd49a0e
JDK 11.0.10+10 EA Linux x86 RPM 162.7 584418f982acdf769490fbef0b331d8e82943077
JDK 11.0.10+10 EA Linux x86 TAR.GZ 181.3 fe9ea1d8205ce2f97fc9ecef250e368c04bd3e88
JDK 11.0.10+10 EA Linux ARM DEB 163 6975ad025cbd45abbfadffdf148bab1274071113
JDK 11.0.10+10 EA Linux ARM RPM 170 435fa09411e6440015783dae5f0e46910ff1ce20
JDK 11.0.10+10 EA Linux ARM TAR.GZ 189.7 884895c6119ee42e22b46ee19365bcf9d7bed6f9
JDK 11.0.10+10 EA Alpine Linux ARM (musl) APK 178.7 7fed224f6e7146a9c7144c63c2e387457fc4c968
JDK 11.0.10+10 EA Linux ARM (musl) TAR.GZ 179.8 5516161846ef020525eb7ba29384fecce3438594
JDK 11.0.10+10 EA Alpine Linux x86 (musl) APK 179.5 67dc4c1ca1460bef475dd279c4bb3617c1777010
JDK 11.0.10+10 EA Linux x86 (musl) TAR.GZ 180.7 3d648000304deb723e7df47ccb7534454663a0e1
Name Size (MB) SHA1
JDK 15.0.2+9 EA Linux x86 DEB 162.3 31afc5b8d820a8b4287f410800bc9eda0a64976f
JDK 15.0.2+9 EA Linux x86 RPM 169.2 44baf15d62941cffba36bcba9a7d2cd2480635df
JDK 15.0.2+9 EA Linux x86 TAR.GZ 188.1 4b7fdaa787093b2d65c36f14d8a4d322dbe41438
JDK 15.0.2+9 EA Alpine Linux x86 (musl) APK 186.7 5a4e4733e9465e9cda8d9e1c97e437554c72229a
JDK 15.0.2+9 EA Linux x86 (musl) TAR.GZ 187.9 aee25e1920478da70a746e79c18124de0b4e551f
JDK 15.0.2+9 EA Linux ARM DEB 164.3 508c97fcf4fe1a32cb1f62471db5cfcf9cf59f9f
JDK 15.0.2+9 EA Linux ARM RPM 170.9 5141800c6338f504871651ed28104c5e3478ca7d
JDK 15.0.2+9 EA Linux ARM TAR.GZ 189.5 6e1bda2e72cd854ae105cb2760217f3716822e83
JDK 15.0.2+9 EA Alpine Linux ARM (musl) APK 186.3 406472cd1b0a28ccc1ab1e4f15c8c00b5222fdf2
JDK 15.0.2+9 EA Linux ARM (musl) TAR.GZ 187.6 fac727ced22814dfbe0dc32885591b1412dcf033

Инструкция по сборке Docker-образа с этими файлами:

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM alpine:3.11

ENV LIBERICA_VERSION=11.0.10+10-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-x64-musl.tar.gz
ENV LIBERICA_SHA=e621f4115f6d357b31b1b8888c42329c2c78d575e9e24ddbe8c2162a8caf5874
ENV LIBERICA_HOME=/opt/bellsoft/jdk
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
RUN set -o errexit -o nounset \
 && apk add --no-cache binutils \
 && wget --no-verbose --output-document=jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p /tmp/jdk \
 && tar xf jdk.tar.gz -C /tmp/jdk --strip-components=1 \
 && rm jdk.tar.gz \
 && /tmp/jdk/bin/jlink \
   --add-modules java.base \
   --compress=2 \
   --no-header-files \
   --no-man-pages \
   --module-path /tmp/jdk/jmods \
   --output "$LIBERICA_HOME" \
 && rm -rf /tmp/jdk \
 && apk del binutils \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM alpine:3.11

ENV LIBERICA_VERSION=15.0.2+9-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-x64-musl-lite.tar.gz
ENV LIBERICA_SHA=bfe8442c00af5aedca50b3b7c303e7910b08dd4a90418dc653deb3ee849ac16d
ENV LIBERICA_HOME=/opt/bellsoft/jdk
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
RUN set -o errexit -o nounset \
 && wget --no-verbose --output-document=jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM debian:9

ENV LIBERICA_VERSION=11.0.10+10-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-amd64-lite.tar.gz
ENV LIBERICA_SHA=4f362dd78b00cc077d770dfa5331cb0ae7d6ed124f8a73dea560a1dee0793606
ENV LIBERICA_HOME=/opt/bellsoft/jdk
RUN set -o errexit -o nounset \
 && apt-get update \
 && apt-get install --yes --no-install-recommends \
   ca-certificates \
   curl \
   fontconfig \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*
RUN set -o errexit -o nounset \
 && curl --fail --location --silent --show-error --output jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM centos:7

ENV LIBERICA_VERSION=11.0.10+10-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-amd64-lite.tar.gz
ENV LIBERICA_SHA=4f362dd78b00cc077d770dfa5331cb0ae7d6ed124f8a73dea560a1dee0793606
ENV LIBERICA_HOME=/opt/bellsoft/jdk
RUN set -o errexit -o nounset \
 && yum install --assumeyes \
   ca-certificates \
   curl \
   fontconfig \
 && yum clean all \
 && rm -rf /var/cache/yum \
 && rm -rf /var/lib/rpm/__db* \
 && rpm --rebuilddb
RUN set -o errexit -o nounset \
 && curl --fail --location --silent --show-error --output jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM alpine:3.11

ENV LIBERICA_VERSION=15.0.2+9-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-x64-musl.tar.gz
ENV LIBERICA_SHA=f3ec12fb99db98f2f779565c8bdf72c2eb2f4343829fb942df943e5f97037b82
ENV LIBERICA_HOME=/opt/bellsoft/jdk
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
RUN set -o errexit -o nounset \
 && apk add --no-cache binutils \
 && wget --no-verbose --output-document=jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p /tmp/jdk \
 && tar xf jdk.tar.gz -C /tmp/jdk --strip-components=1 \
 && rm jdk.tar.gz \
 && /tmp/jdk/bin/jlink \
   --add-modules java.base \
   --compress=2 \
   --no-header-files \
   --no-man-pages \
   --module-path /tmp/jdk/jmods \
   --output "$LIBERICA_HOME" \
 && rm -rf /tmp/jdk \
 && apk del binutils \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM alpine:3.11

ENV LIBERICA_VERSION=15.0.2+9-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-x64-musl-lite.tar.gz
ENV LIBERICA_SHA=bfe8442c00af5aedca50b3b7c303e7910b08dd4a90418dc653deb3ee849ac16d
ENV LIBERICA_HOME=/opt/bellsoft/jdk
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
RUN set -o errexit -o nounset \
 && wget --no-verbose --output-document=jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM debian:9

ENV LIBERICA_VERSION=15.0.2+9-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-amd64-lite.tar.gz
ENV LIBERICA_SHA=4a14d02788566810af0753de28c6ff42514f45f592ad38bd69a79869a684e920
ENV LIBERICA_HOME=/opt/bellsoft/jdk
RUN set -o errexit -o nounset \
 && apt-get update \
 && apt-get install --yes --no-install-recommends \
   ca-certificates \
   curl \
   fontconfig \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*
RUN set -o errexit -o nounset \
 && curl --fail --location --silent --show-error --output jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

1. Создайте новую папку и перейдите в неё командой cd.

2. Создайте файл Dockerfile и вставьте код:

FROM centos:7

ENV LIBERICA_VERSION=15.0.2+9-ea
ENV LIBERICA_URL=https://download.bell-sw.com/java-ea/$LIBERICA_VERSION/bellsoft-jdk${LIBERICA_VERSION}-linux-amd64-lite.tar.gz
ENV LIBERICA_SHA=4a14d02788566810af0753de28c6ff42514f45f592ad38bd69a79869a684e920
ENV LIBERICA_HOME=/opt/bellsoft/jdk
RUN set -o errexit -o nounset \
 && yum install --assumeyes \
   ca-certificates \
   curl \
   fontconfig \
 && yum clean all \
 && rm -rf /var/cache/yum \
 && rm -rf /var/lib/rpm/__db* \
 && rpm --rebuilddb
RUN set -o errexit -o nounset \
 && curl --fail --location --silent --show-error --output jdk.tar.gz "$LIBERICA_URL" \
 && echo "$LIBERICA_SHA *jdk.tar.gz" | sha256sum -c - \
 && mkdir -p "$LIBERICA_HOME" \
 && tar xf jdk.tar.gz -C "$LIBERICA_HOME" --strip-components=1 \
 && rm jdk.tar.gz \
 && "$LIBERICA_HOME/bin/java" -version
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV JAVA_HOME=$LIBERICA_HOME
ENV PATH=$LIBERICA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["java", "-version"]

3. Соберите образ: docker build . -t name:tag

4. Запустите образ: docker run --rm name:tag

3. Новая комбинация архитектуры и операционной системы

Архитектура ARM становится всё более популярной среди разработчиков. Мы не можем оставаться в стороне, поэтому в этом релизе расширяем поддержку Alpine Linux на AArch64, вдобавок к Intel x86.

4. Инсталлеры и репозиторий Liberica для Alpine Linux (Intel и AArch64)

Ранее Liberica JDK и JRE для дистрибутивов Linux были доступны только для скачивания в виде архивов TAR.GZ с цифровой подписью, файлов DEB или RPM. Теперь же вы можете установить любую сборку под Alpine Linux при помощи стандартной процедуры apk add <liberica package> по нашей инструкции.

Используйте следующие команды, чтобы добавить официальный репозиторий Alpine Linux от BellSoft:

# add our repository
echo "https://apk.bell-sw.com/main" | sudo tee -a /etc/apk/repositories
# add our official signing key
sudo wget -P /etc/apk/keys/ https://apk.bell-sw.com/[email protected]

Установите Liberica JDK/JRE простой командой:

sudo apk add bellsoft-java8

Также можно воспользоваться busybox wget и получить файлы непосредственно с сайта BellSoft. Сперва найдите нужную сборку в разделе Скачать. Скопируйте URL и вставьте его в командную строку:

wget https://download.bell-sw.com/java-ea/15.0.2+9-ea/bellsoft-jdk15.0.2+9-ea-linux-aarch64-musl-lite.apk

Затем установите скачанный пакет на устройство:

sudo apk add --allow-untrusted bellsoft-jdk15.0.2+9-ea-linux-aarch64-musl-lite.apk

Опцию --allow-untrusted можно исключить, если вы уже добавили наш официальный подписанный ключ, как было описано выше.

Мы всегда стремимся улучшать наши продукты, расширяя их функционал. Инженеры BellSoft прислушиваются к нуждам OpenJDK коммьюнити, нашему главному источнику идей. В результате, с каждым релизом Liberica JDK становится всё удобнее для решения повседневных и неординарных задач.

Все сборки доступны для скачивания на нашем сайте.

Author image

Aleksei Voitylov

BellSoft CTO

BellSoft LTD [email protected] BellSoft LTD logo Liberica Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 111 North Market Street, Suite 300 CA 95113 San Jose US +1 702 213-59-59