Фон
Это не так сразу видно, как вы думаете.
Во-первых, в то время как Oracle прекратила публичную поддержку Java 6 с февраля 2013 года, но с поддержкой Premier выйдет на декабрь 2013 года и расширенная поддержка, идущая к декабрю 2016 года немного длинный хвост. Кроме того, существует устойчивая поддержка, которая может продолжаться вечно.
Следующий крупный поставщик Java, IBM, похоже, даже не опубликовал конец поддержки Java 6 (и по-прежнему поддерживает Java 5 до сентября 2013 года! )
В-третьих, у нас есть Apple: с последним последним патчем в июне 2013 года и "компания не указала свои политики поддержки в черно-белом режиме" кажется, кто-то догадывается... но если они будут обрабатывать Java 5 в качестве основы, мы можем увидеть еще 18 месяцев или около того... конец 2014 года?
Наконец, у нас есть OpenJDK..., который Red Hat сказал, что теперь будет поддерживать...
И я даже не приступал к рассмотрению других реализаций JVM только более распространенных в дикой природе!
Итак, из того, что я вижу, до сих пор, пока у вас есть деньги для оплаты Oracle/IBM/Red Hat, вы можете продолжать получать версию Java 6, которая поддерживается неограниченно...
Возможно, мы сможем начать формулировать этот вопрос немного лучше и получить шанс на неопределенный ответ:
-
Если вы не можете купить аппаратное обеспечение/операционную систему, с которой работает JVM, то определенная JVM, которая продолжает поддерживаться, немного спорна. Расширенные контракты на поддержку для существующих клиентов, которые, скорее всего, имеют свои существующие потребности в своих существующих системах... и если они не могут перейти на более новый
Это фактически дает нам некоторый контекст для Apple... поскольку аппаратное обеспечение Apple поддерживается в течение 5 лет (7, если в Калифорнии), то единственным поддерживаемым аппаратным обеспечением Apple должно быть оборудование на базе x86, поскольку коммутатор был завершен Декабрь 2006 (будучи последним аппаратным оборудованием Apple на базе PPC), поэтому на самом деле нам не нужно беспокоиться о версиях Apple Java, которые работают на PPC, в качестве
Аналогично, мы, вероятно, можем исключить любые версии Java, которые работают в более старых версиях Windows. Что означает Apr 2014, если установщик Java не будет запускаться в Windows 7+, тогда мы можем фактически игнорировать эту версию Java, поддерживаемую в Windows XP?
-
Мой реальный интерес - это когда разработчики могут продвигать свою минимальную версию Java.
Jenkins поддерживает поддержку Java 5 в течение некоторого времени, но более новые изменения означают, что 1.520 + требуется Java 6 или новее на главном и подчиненном устройствах. Это может вызвать проблемы, если некоторые из ведомых устройств сборки, например. устаревшее оборудование, не может запускать новые JVM.
Maven имеет давнюю историю, позволяющую разветкить JVM до J2SE 1.3 для запуска модульных тестов, но с Surefire 2.15, он будет поддерживать только те тесты, которые выполняются на уровне как Java 5.
javac переходит к политике 1 и 3 назад в терминах
-source
и-target
... поэтому нам нужно будет подождать до JDK 10 до Поддержка исходных файлов Java 6 отключена из javac... с 2-летним релизом каденции и Java 8, запланированным к выпуску в начале 2014 года, что подразумевает JDK9 в начале 2016 года и JDK10 в начале 2018 года... но JDK9 будет доступен с общедоступным в течение еще 3 лет, что означает, что некоторое время в 2019 году, когда совместимость исходного кода JDK 6 может быть удалена.
Вопрос
Есть ли ясная дата, которая может быть использована для установления, когда инструментальные средства для разработчиков OSS могут отказаться от поддержки JVM до Java 7, и какова эта дата?
Различия в OSS важны, поскольку разработчики OSS обычно не имеют финансирования для покупки контрактов с расширенными/премиальными/поддерживающими типами поддержки и, скорее всего, не имеют доступа к аппаратам с неясным/мэйнфреймом.
Обновление: "Отбросить поддержку для JVM до Java 7" Я имею в виду, что было бы безопасно скомпилировать всю инструментальную цепочку с помощью -target 7
, то есть для того, чтобы байт-код требовал запускать Java 7.
Обновление 2: это должно быть, как указано в рамке, отвечать на вопрос, основанный на факте. Правильный ответ должен быть либо формы
Нет четкого ответа, вот ссылка на "некоторые люди, которые предоставляют бесплатные обновления для пользователей OSS на Java 6", и они не сказали, когда они еще остановятся.
или
Да, есть окончательная дата ГГГГ-ММ-ДД, и вот доказательства