OpenJDK 11 был выпущен 25 сентября 1018 года. Поскольку это первый выпуск LTS после 8-й версии, его долго ждали. После его установки на Ubuntu 18.04 (Bionic Beaver) , который поставляется с пакетом с именем openjdk-11-jdk , к моему удивлению, это была еще более ранняя версия (Java 10).
SRU исключение для OpenJDK
Команда разработчиков Ubuntu сделала исключение SRU для OpenJDK . Версия 10 Altought не является выпуском LTS, они упаковывали ее как openjdk-11-jdk
пока OpenJDK 11 не выйдет в GA. Этот выбор был основан на том предположении, что между выпусками 10 и 11 существует гораздо меньшая дельта интерфейса, чем между 8 и 11.
Это довольно веские аргументы, и, возможно, apt-get upgrade
не будет так плохо, когда версия OpenJDK будет увеличена с 10 до 11.
Хотя есть одна крошечная область, в которой есть существенная разница между 10 и 11, и это то, что тем временем Flight Recorder был открыт . OpenJDK 10 не содержит регистратора полетов, так как в то время это была коммерческая функция Oracle JDK , но OpenJDK 11 поставляется с ним.
Как следствие, установка openjdk-11-jdk
не позволяет инструментам оснащаться JFR, поскольку опции JVM, используемые для его включения, просто не распознаются OpenJDK 10 . Фактически, JVM не запускается и жалуется на нераспознанные опции.
Установка JDK по умолчанию в Ubuntu
Это очень просто, вам просто нужен следующий пакет.
1
|
% apt-get install default-jdk |
Тем не менее, проверьте, какая версия Java действительно устанавливается.
1
2
3
4
|
$ java -version openjdk version "10.0.2" 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2) OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode) |
Установка OpenJDK вручную
Это тоже просто, вам просто нужно скачать тарбол и распаковать его куда-нибудь.
1
2
3
|
% wget https: //download .java.net /java/GA/jdk11/28/GPL/openjdk-11 +28_linux-x64_bin. tar .gz -O /tmp/openjdk-11 +28_linux-x64_bin. tar .gz % sudo tar xfvz /tmp/openjdk-11 +28_linux-x64_bin. tar .gz --directory /usr/lib/jvm % rm -f /tmp/openjdk-11 +28_linux-x64_bin. tar .gz |
Это будет OpenJDK 11 по-настоящему.
1
2
3
4
|
$ /usr/lib/jvm/jdk-11/bin/java -version openjdk version "11" 2018-09-25 OpenJDK Runtime Environment 18.9 (build 11+28) OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode) |
Переключение между JDK
Я бы предпочел использовать JDK дистрибутива, пока он работает для поставленной задачи. В этом случае это не вариант, по крайней мере пока. По этой причине я использую альтернативную инфраструктуру, с помощью которой можно легко переключаться между JDK.
1
2
|
% sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 100; done' % sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --set $(basename $bin) $bin; done' |
Как только OpenJDK 11 появится в Ubuntu 18.04 , это будет всего лишь вопрос обновления пакета и переключения альтернатив для его использования.
01
02
03
04
05
06
07
08
09
10
11
|
% sudo apt-get install --only-upgrade default-jdk % update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java ). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode * 2 /usr/lib/jvm/jdk-11/bin/java 100 manual mode Press <enter> to keep the current choice[*], or type selection number: |
Смотрите оригинальную статью здесь: Установка OpenJDK 11 на Ubuntu 18.04 для реального
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |