Comments 69
Попробуйте сборку от Azul.
Всё новое — хорошо забытое старое :) Очень рекомендую прочитать Jargon File, который составлял ещё старичок Эрик Рэймонд — это что-то вроде "википедии" тех лет. Содержание — по ссылке. Очень много остроумных слов.
Oracle решили не поставлять Sheandoah ни с какой из своих релизных сборок — ни с той, что на jdk.java.net, ни с той, которая на oracle.com.
Почему?
В любом случае, какой-то бред, что официальный билд не содержит фичу, официально выпущенную в экосистему.
int dayNum = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 1;
или
int dayNum = switch (day) {
case MONDAY -> 6
case FRIDAY -> 6;
....
?
Я только на прошлой неделе начал книгу и в интернатах читать и везде 8-ая.
Все пропало? Надо искать что-то свежее?
А почему на сайте оракла jdk 8-ой? Они сами не верят в то, что релизят?
Учить можно то, что есть, изменения в джаве не слишком радикальные, и основы, которые требуется учить, они, как правило, не затрагивают. Но быть в теме изменений новых версий стоит — когда-нибудь Java 8 станет тем, чем сейчас является Java 5.
Я вот сюда пападал из поиска — www.java.com/ru/download/win10.jsp
Чего "учить"-то тут все собрались? Ну вот знаете вы теперь про Constants API, что дальше делать с этим знанием кроме кругозора? Если вы будете работать над задачей, которая требует Constants API, точно разберетесь с этим за считаные часы.
Начиная с 9 jre более не посталяется, предлагается собирать по нужде с помощью jlink
Для обычных домохозяек, желающих запустить модерновое Java 12 приложение на своем ПК, Java где теперь находится?
Начиная с 9 jre более не посталяется
В Java 9 и 10 JRE всё ещё есть: www.oracle.com/technetwork/java/javase/downloads/java-archive-javase9-3934878.html
А вот с 11 её действительно нету.
Очень зря, на самом деле. Производительность сильно улучшается от релиза к релизу. Я тестировал свое поделие на 11-й и получил прирост около 40% по сравнению с 8-й. В 12-й есть еще пара улучшательств.
1. bugs.openjdk.java.net/browse/JDK-8219233
2. pangin.pro/posts/computation-in-static-initializer
И это действительно большая проблема.
Мы сидим на 8, и слезть не получается — вообще не понятно, где брать эти openjdk и кто будет делать security patches.
Кровавому ынтырпрайзу нужны LTS. Банки не будут обновлять джаву раз в 6 месяцев.
вообще не понятно, где брать эти openjdk и кто будет делать security patches
Проблемы никакой нет. Я бы сказал, сейчас даже стало ещё проще. Просто качаешь с adoptopenjdk.net
Качаешь что? .tar.gz? В 2019 году? :)
Попробуйте установить jdk 11 на Ubuntu LTS из официальных репозиториев, например. Там все ещё 10 — которая уже полгода не поддерживается.
.tar.gz
а что, в 2019 году уже другие архивы в моде? :)
Попробуйте установить jdk 11 на Ubuntu LTS из официальных репозиториев, например. Там все ещё 10 — которая уже полгода не поддерживается.
Нужно просто правильно устанавливать:
sudo add-apt-repository ppa:openjdk-r/ppa \
&& sudo apt-get update -q \
&& sudo apt install -y openjdk-11-jdk
stackoverflow.com/questions/52504825/how-to-install-jdk-11-under-ubuntu
Только так и нужно джаву ставить. Никаких пакетов. Серьезно.
Ссылка точно так же уязвима как и пакеты, так что — нет.
Нет, так никогда нельзя ее ставить. Серьезно. По той же причине, почему предпочитают RedHat, а не дистро от энтузиастов.
Бизнес будет сидеть на 8, пока не будет внятного вендора с LTS и патчами.
С другой стороны, я сам очень давно пользовался Дебианом, и практически каждая ошибка развертывания Java-платформы была связана с пакетами Дебиана и его мантейнерами. И точно так же как в техподдержке интернета давным-давно придумали универсальное правило для починки проблем домохозяек «выключите и включите», у меня теперь есть универсальное правило для любого Java софта на платформе Debian/Ubuntu: выключите (в смысле — удалите все пакеты всего джава-софта) и включите (вручную раскатайте zip-файлы, пропишите все нужные переменные и конфиги). Обычно это работает :-)
Частично это работает ещё и потому, что людям в таком режиме приходится вручную написать все конфиги и переменные в них, прогуглить их и понять, а не просто надеяться, что их правильно указал создатель дистрибутива. Доходит до смешного, что некоторые линукс-админы не знают, что такое PATH и где он устанавливается, и сама сакральная процедура раскатывания зипника JDK, прописывания JAVA_HOME и JAVA_HOME/bin в PATH нехило так расширяет их понимание платформы и класса проблем вроде «я установил пакет Java 11, а java -version показывает 8, спасите-помогите, ДЖАВА СЛОМАЛАСЬ».
В джава-мире процветает какой-то совершенно безумный карго-культ, согласно которому только Оракл может собирать «правильные» пакеты OpenJDK (на самом деле — кто угодно), или только пакетный менеджер может правильно их устанавливать (на самом деле — кто угодно, и может быть с помощью Ansible это делать ещё лучше), и так далее. Но к сожалению, сложилась критическая масса мракобесов, которые занимаются карго-культом и продолжают им заниматься вне зависимости от того, приводит это к каким-то осмысленным результатам или нет.
Я мог бы долго писать, но вот тут есть интервью, которое в точности описывает мою точку зрения на весь этот вопрос: habr.com/ru/company/jugru/blog/444652
Раньше я думал так же. Однако на работе, к сожалению, нужно работать, а не заниматься распаковкой архивов и настройкой PATH.
По той же причине я покупаю билеты на, скажем, jpoint — чтобы не тратить время на самостоятельное изучение, а послушать людей, которые этим занимаются побольше меня.
Архив, ну ок, могу, если нет другого выхода. Но все же не ясно, будут ли в open source важные патчи, или нужно покупать платную версию от оракла или другого вендора(какого?)?
Кто занимается эти сайтом? Как скоро выходят критические патчи?
Что вообще люди используют в проде? Есть ли такие, что 11 используют? Интересен практический опыт. Используют ли, например, банки 11, или сидят на 8?
Кто занимается эти сайтом?
Волонтёры. Но не кто попало, а высококвалифицированные люди. Например, лидер проекта Martijn Verburg является Java-чемпионом.
Как скоро выходят критические патчи?
Как обычно, примерно раз в три месяца. Как это всю жизнь делает Oracle.
Что вообще люди используют в проде?
Java 8 используется в 80% случаев. Java 11 пока слишком новая, поэтому серьёзные банки вряд ли на неё перешли.
Oracle же продаёт 11 LTS. Никаких проблем не вижу.
Вы в оракл работаете? Для вас проблем нет. Сколько там стоит джава за ядро теперь?
Создаёте свой Docker-образ, в нём ваша программа на Java. Всё. Сам образ — это и версия релиза, и ваш артефакт для запуска.
В качестве поставщика Java (секция FROM в Docker-файле) используете, например, Zulu. Так вы и переходите на Java 11. При появлении патченных версий Java — подставляете свежий образ сборки в FROM.
Причина: желание поставлять новые готовые фичи тогда, когда они будут готовы, а не ждать «коллег» по году и более. Это отсылка к переносам модуляризации (Jigsaw).
Или вы действительно не разбираетесь в вопросе и пишете комментарий?
GraalVM вошёл в 9-ку и далее везде
Есть предположение (это не официальная позиция), что все клиенты, которые реально платят за GraalVM, сидят на 8, поэтому чинить косяки на 12 не имеет смысла. Оно собирается под свежие джавы (если собирать вручную), "но есть нюанс".
Если действительно интересна тема, можете зайти в чат @graalvm_ru в Телеграме и задать вопросы Олегу Шелаеву. Я давал ему инвайт на Хабр, но похоже, у него не так много времени, чтобы ещё и наш флуд тут непрерывно читать.
все клиенты, которые реально платят за GraalVM, сидят на 8, поэтому чинить косяки на 12 не имеет смысла
Тогда получается проблема стандартная, типоразмера "яйцо и курица": если не чинить косяки в новых версиях (хотя бы в 11, раз уж на то пошло, LTS всё-таки) — то все клиенты так и будут сидеть на 8, и никто их оттуда не сгонит. Не то чтоб это что-то плохое, но вроде в противодействие такому сидению Java и начала проводить такую агрессивную политику EOL в релизах — а значит какие-то причины были.
Возможно это плата за переход на релиз 1 раз в полгода? Переходы на новые версии отнимают слишком много времени от разработки и поддержки текущего проекта.
Пришло время Java 12! Обзор горячих JEP-ов