Java.com

Загрузить Справка

Версия для печати

Ключевые моменты выпуска Java 8


Этот раздел касается:
  • Версии Java: 8.0

На этой странице основное внимание уделяется изменениям, влияющим на работу конечных пользователей, для всех версий Java. Дополнительные сведения об изменениях доступны в примечаниях к выпуску (к каждому соответствующему выпуску).
» Даты выпуска Java


Java 8 Update 141 (8u141)

Release Highlights
  • IANA Data 2017b
    JDK 8u141 contains IANA time zone data version 2017b. For more information, refer to Timezone Data Versions in the JRE Software.
  • Certificate Changes: New Let's Encrypt certificates added to root CAs
    One new root certificate has been added:
    ISRG Root X1
    alias: letsencryptisrgx1
    DN: CN=ISRG Root X1, O=Internet Security Research Group, C=US

    JDK-8177539 (not public)
  • JMX Diagnostic improvements
    com.sun.management.HotSpotDiagnostic::dumpHeap API is modified to throw IllegalArgumentException if the supplied file name does not end with “.hprof” suffix. Existing applications which do not provide a file name ending with the “.hprof” extension will fail with IllegalArgumentException. In that case, applications can either choose to handle the exception or restore old behavior by setting system property 'jdk.management.heapdump.allowAnyFileSuffix' to true.
    JDK-8176055 (not public)
  • Tighter secure checks on processing WSDL files by wsimport tool
    The wsimport tool has been changed to disallow DTDs in Web Service descriptions, specifically:
    • DOCTYPE declaration is disallowed in documents
    • External general entities are not included by default
    • External parameter entities are not included by default
    • External DTDs are completely ignored
    To restore the previous behavior:
    • Set the System property com.sun.xml.internal.ws.disableXmlSecurity to true
    • Use the wsimport tool command line option –disableXmlSecurity
      NOTE: JDK 7 and JDK 6 support for this option in wsimport will be provided via a Patch release post July CPU
    JDK-8182054 (not public)
  • Custom HostnameVerifier enables SNI extension
    Earlier releases of JDK 8 Updates didn't always send the Server Name Indication (SNI) extension in the TLS ClientHello phase if a custom hostname verifier was used. This verifier is set via the setHostnameVerifier(HostnameVerifier v) method in HttpsURLConnection. The fix ensures the Server Name is now sent in the ClientHello body.
    See JDK-8144566
  • Improved algorithm constraints checking
    With the need to restrict weak algorithms usage in situations where they are most vulnerable, additional features have been added when configuring the jdk.certpath.disabledAlgorithms and jdk.jar.disabledAlgorithms security properties in the java.security file.

    jdk.certpath.disabledAlgorithms: The certpath property has seen the most change. Previously it was limited to two Constraint types; either a full disabling of an algorithm by name or a full disabling of an algorithm by the key size when checking certificates, certificate chains, and certificate signatures. This creates configurations that are absolute and lack flexibility in their usage. Three new Constraints were added to give more flexibility in allowing and rejecting certificates.

    "jdkCA" examines the certificate chain termination with regard to the cacerts file. In the case of "SHA1 jdkCA". SHA1's usage is checked through the certificate chain, but the chain must terminate at a marked trust anchor in the cacerts keystore to be rejected. This is useful for organizations that have their own private CA that trust using SHA1 with their trust anchor, but want to block certificate chains anchored by a public CA from using SHA1.

    "denyAfter" checks if the given date is before the current date or the PKIXParameter date. In the case of "SHA1 denyAfter 2018-01-01", before 2018 a certificate with SHA1 can be used, but after that date, the certificate is rejected. This can be used for a policy across an organization that is phasing out an algorithm with a drop-dead date. For signed JAR files, the date is compared against the TSA timestamp. The date is specified in GMT.

    "usage" examines the specified algorithm for a specified usage. This can be used when disabling an algorithm for all usages is not practical. There are three usages that can be specified:

    • 'TLSServer' restricts the algorithm in TLS server certificate chains when server authentication is performed as a client.
    • 'TLSClient' restricts the algorithm in TLS client certificate chains when client authentication is performed as a server.
    • 'SignedJAR' restricts the algorithms in certificates in signed JAR files. The usage type follows the keyword and more than one usage type can be specified with a whitespace delimiter.
      For example, "SHA1 usage TLSServer TLSClient" would disallow SHA1 certificates for TLSServer and TLSClient operations, but SignedJars would be allowed

    All of these constraints can be combined to constrain an algorithm when delimited by '&'. For example, to disable SHA1 certificate chains that terminate at marked trust anchors only for TLSServer operations, the constraint would be "SHA1 jdkCA & usage TLSServer".

    jdk.jar.disabledAlgorithms: One additional constraint was added to this .jar property to restrict JAR manifest algorithms.

    "denyAfter" checks algorithm constraints on manifest digest algorithms inside a signed JAR file. The date given in the constraint is compared against the TSA timestamp on the signed JAR file. If there is no timestamp or the timestamp is on or after the specified date, the signed JAR file is treated as unsigned. If the timestamp is before the specified date, the .jar will operate as a signed JAR file. The syntax for restricting SHA1 in JAR files signed after January 1st 2018 is: "SHA1 denyAfter 2018-01-01". The syntax is the same as that for the certpath property, however certificate checking will not be performed by this property.
    See JDK-8176536

Java Expiration Date

The expiration date for 8u141 is October 17, 2017. Java expires whenever a new release with security vulnerability fixes becomes available. For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 8u141) on November 17, 2017. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version.

Bug Fixes

This release contains fixes for security vulnerabilities described in the Oracle Java SE Critical Patch Update Advisory. For a more complete list of the bug fixes included in this release, see the JDK 8u141 Bug Fixes page.

» 8u141 Release notes


Java 8 (обновление 131) (8u131)

Ключевые моменты выпуска
  • Данные IANA версии 2016j
    JDK 8u131 содержит версию 2016j данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки. Добавлена новая модель организации окон
    Раньше на платформе OS X структура AWT использовала встроенные сервисы для установления отношения прямого подчинения окон. В результате в мультимониторных средах возникали отрицательные визуальные эффекты. Для устранения недостатков подобного подхода разработана новая модель организации окон, которая полностью реализуется на уровне JDK. Ее основные принципы работы представлены ниже:
    • Окно размещается над ближайшим родительским окном.
    • Если окно содержит несколько дочерних окон, все окна размещаются на одном уровне, а окно из активной цепочки окон помещается над одноуровневыми окнами.
    • Упорядочение окон в свернутом состоянии или во время свертывания невозможно.
    Эти правила применяются ко всем рамкам или диалоговым окнам, входящим в состав иерархии окон, которая содержит текущее окно. См. JDK-8169589
  • Исправление ошибки. Устранение исключения IllegalArgumentException при подтверждении связи TLS
    Ошибка в недавнем исправлении JDK-8173783 может привести к неполадкам на некоторых серверах TLS. Проблема возникает из-за исключения IllegalArgumentException, которое генерирует код подтверждения связи TLS:

    java.lang.IllegalArgumentException: System property
    jdk.tls.namedGroups(null) contains no supported elliptic curves


    Ошибка может возникать, если сервер не поддерживает шифрование на основе эллиптических кривых для обработки поля расширения имени эллиптической кривой (если имеется). Пользователям рекомендуется выполнить обновление до данного выпуска. По умолчанию в обновления JDK 7 и более поздние версии JDK включен поставщик безопасности SunEC, в котором реализована поддержка шифрования на основе эллиптических кривых. Описанная проблема должна отсутствовать в этих выпусках, если поставщик безопасности не был изменен. См. JDK-8173783
  • В свойство безопасности jdk.jar.disabledAlgorithms добавлен алгоритм MD5
    В этом выпуске JDK добавлено новое ограничение для проверки файлов JAR, подписанных с помощью MD5. Если в подписанном файле JAR используется MD5, то операции проверки подписи проигнорируют имеющуюся подпись и будут обрабатывать файл JAR, как не подписанный. Это может происходить в следующих типах приложений, которые используют подписанные файлы JAR:
    • Апплеты и приложения Web Start
    • Автономные и серверные приложения, запущенные с включенным диспетчером SecurityManager и сконфигурированные с помощью файла политик, который предоставляет разрешения на базе модуля подписей кода JAR.

    Списком отключенных алгоритмов можно управлять с помощью свойства безопасности jdk.jar.disabledAlgorithms в файле java.security. Это свойство содержит список отключенных алгоритмов и размеров ключей для криптографически подписанных файлов JAR.

    Чтобы проверить, не использовался ли для подписывания файла JAR слабый алгоритм или ключ, можно использовать двоичный файл jarsigner, который поставляется с JDK. Запуск команды "jarsigner -verify" для файла JAR, подписанного с помощью слабого алгоритма или ключа, позволит получить больше информации об отключенном алгоритме или ключе.

    Например, чтобы проверить файл JAR test.jar, используйте следующую команду:

    jarsigner -verify test.jar

    Если в данном примере файл подписан с помощью слабого алгоритма подписи, например MD5withRSA, то отобразится следующий результат:

    The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled. Re-run jarsigner with the -verbose option for more details.

    Чтобы отобразить еще более подробные сведения, можно использовать параметр verbose:

    jarsigner -verify -verbose test.jar

    Отобразится следующая информация:

    - Signed by "CN=weak_signer"
        Digest algorithm: MD5 (weak)
        Signature algorithm: MD5withRSA (weak), 512-bit key (weak)
      Timestamped by "CN=strong_tsa" on Mon Sep 26 08:59:39 CST 2016
        Timestamp digest algorithm: SHA-256
        Timestamp signature algorithm: SHA256withRSA, 2048-bit key
    
    Чтобы решить проблему, необходимо повторно подписать файл JAR с помощью более стойкого алгоритма или размера ключа. Либо можно отменить ограничения, удалив соответствующие слабые алгоритмы или размеры ключей из свойства безопасности jdk.jar.disabledAlgorithms. Однако этого делать не рекомендуется. Перед повторным подписыванием файлов JAR необходимо удалить из них существующие подписи. Это можно сделать с помощью утилиты "zip", выполнив следующую команду:

    zip -d test.jar 'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*.DSA'

    Рекомендуется периодически проверять документ Oracle JRE and JDK Cryptographic Roadmap на странице http://java.com/cryptoroadmap, чтобы быть в курсе запланированных ограничений для подписанных файлов JAR и прочих компонентов безопасности. JDK-8171121 (не общедоступно)
  • Новое системное свойство для управления кэшированием соединения HTTP SPNEGO.
    Представлено новое системное свойство для реализации пакета JDK, которое позволяет управлять кэшированием для соединений HTTP SPNEGO (Negotiate/Kerberos). Кэширование для соединений HTTP SPNEGO остается активным по умолчанию, поэтому если свойство не задано явно, алгоритм действий не меняется. Если соединение с сервером HTTP, который использует SPNEGO для взаимной аутентификации, установлено, то сведения об аутентификации кэшируются и используются повторно для установления соединения с тем же сервером. Кроме того, при соединении с сервером HTTP с помощью SPNEGO текущее соединение обычно остается активным и повторно используется для отправки запросов на тот же сервер. В некоторых приложениях желательно отключить кэширование для протокола HTTP SPNEGO (Negotiate/Kerberos), чтобы принудительно запрашивать новую аутентификацию для каждого нового запроса на сервер.

    В связи с этим изменением мы предлагаем новое системное свойство, которое позволяет управлять политикой кэширования для соединений HTTP SPNEGO. Если свойство jdk.spnego.cache определяется и признается неверным, все операции кэширования для соединений HTTP SPNEGO отключаются. Однако установка этого системного свойства как неверного может привести к нежелательным побочным эффектам:
    • Это может отрицательно сказаться на эффективности соединений HTTP SPNEGO, так как соединению потребуется выполнять процедуру аутентификации при отправке каждого запроса на сервер, что подразумевает обмен данными в течение определенного времени.
    • Для каждого запроса на сервер потребуется получать учетные данные. В зависимости от того, доступна ли прозрачная аутентификация и применен ли глобальный аутентификатор, для каждого запроса может отображаться всплывающее окно, в котором пользователю потребуется вводить учетные данные.
    JDK-8170814 (не общедоступно)
  • Новое системное свойство для управления кэшированием соединения HTTP NTLM.
    Представлено новое системное свойство для реализации пакета JDK, которое позволяет управлять кэшированием для соединения HTTP NTLM. Кэширование для соединения HTTP NTLM остается активным по умолчанию, поэтому если свойство не задано явно, алгоритм действий не меняется. На некоторых платформах реализация HTTP NTLM в JDK может поддерживать прозрачную аутентификацию, в которой учетные данные пользователя используются на системном уровне. Если прозрачная аутентификация недоступна или не выполнена, JDK получает учетные данные только через глобальный аутентификатор. Если соединение с сервером установлено, то сведения об аутентификации кэшируются и используются повторно для установления соединения с тем же сервером. Кроме того, при соединение с сервером HTTP NTLM текущее соединение обычно остается активным и повторно используется для отправки запросов на тот же сервер. В некоторых приложениях желательно отключить кэширование для протокола HTTP NTLM, чтобы принудительно запрашивать новую аутентификацию для каждого нового запроса на сервер.

    В связи с этим изменением мы предлагаем новое системное свойство, которое позволяет управлять политикой кэширования для соединений HTTP NTLM. Если свойство jdk.ntlm.cache определяется и признается неверным, все операции кэширования для соединений HTTP NTLM отключаются. Однако установка этого системного свойства как неверного может привести к нежелательным побочным эффектам:
    • Это может отрицательно сказаться на эффективности соединений HTTP NTLM, так как соединению потребуется выполнять процедуру аутентификации при отправке каждого запроса на сервер, что подразумевает обмен данными в течение определенного времени.
    • Для каждого запроса на сервер потребуется получать учетные данные. В зависимости от того, доступна ли прозрачная аутентификация и применен ли глобальный аутентификатор, для каждого запроса может отображаться всплывающее окно, в котором пользователю потребуется вводить учетные данные.
    JDK-8163520 (не общедоступно)
  • Новая версия VisualVM
    4 октября 2016 года выпущена новая версия VisualVM 1.3.9 http://visualvm.github.io/relnotes.html и интегрирована в 8u131. См. JDK-8167485
Дата окончания срока действия Java

Дата истечения срока действия для8u131: 18 июля 2017 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, истечение срока действия JRE (версия 8u131) 18 августа 2017 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Список ошибок предыдущих версий, исправленных в этом выпуске, см. на странице Исправления ошибок JDK 8u131.

» Примечания к выпуску 8u131


Java 8 (обновление 121) (8u121)

Ключевые моменты выпуска
  • Данные IANA версии 2016i
    JDK 8u121 содержит версию 2016i данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки. Слишком быстрая прокрутка текста с помощью сенсорной панели в OS X 10.12 Sierra
    Метод MouseWheelEvent.getWheelRotation() возвращает округленные значения для собственных событий NSEvent deltaX/ в Mac OS X. В последней версии macOS Sierra 10.12 создаются очень маленькие значения NSEvent deltaX/Y, поэтому округление и суммирование этих значений ведет к возврату большого значения в методе MouseWheelEvent.getWheelRotation(). Исправление JDK-8166591 накапливает значения NSEvent deltaX/Y, и метод MouseWheelEvent.getWheelRotation() возвращает ненулевые значения только, если накопленное значение превышает пороговое и нулевое значение. Это соответствует спецификации MouseWheelEvent.getWheelRotation(): "Возвращает число кликов, соответствующих повороту колесика мыши, в виде целого числа. Если мышь поддерживает колесико с высоким разрешением, то может произойти частичный поворот. В этом случае метод возвращает нулевое значение до тех пор, пока не будет накоплено значение полного клика." Для использования точных значений поворота колесика мыши используйте метод MouseWheelEvent.getPreciseWheelRotation(). См. JDK-8166591
  • Повышена надежность криптографии EC в JDK
    Для повышения надежности криптографии EC ключи EC с длиной меньше 224 бит деактивированы при обработке путей сертификации (с помощью свойства безопасности jdk.certpath.disabledAlgorithms) и в подключениях SSL/TLS (с помощью свойства безопасности jdk.tls.disabledAlgorithms) в JDK. При необходимости в свойствах безопасности можно обновить это ограничение для приложений и разрешить использование ключей меньшего размера (например, "EC keySize < 192"). Кривые EC с размером меньше 256 бит удалены из реализации SSL/TLS в JDK. Новое системное свойство jdk.tls.namedGroups определяет список разрешенных именованных кривых, расположенных в порядке предпочтения, для наборов шифров EC. Если требуется настроить для приложения используемые по умолчанию кривые EC или их приоритет, обновите системное свойство соответствующим образом. Например:
        jdk.tls.namedGroups="secp256r1, secp384r1, secp521r1"
    

    Обратите внимание, что для используемых по умолчанию или пользовательских кривых EC применяются ограничения алгоритма. Например, пользовательские кривые EC не могут повторно активировать отключенные ключи EC, определенные свойствами безопасности Java. См. JDK-8148516
  • Новый параметр "--allow-script-in-comments" для javadoc
    Средство Javadoc теперь отклоняет все вхождения кода JavaScript в комментариях документации Javadoc и параметрах командной строки, если не задан параметр --allow-script-in-comments. Параметр --allow-script-in-comments позволяет средству Javadoc сохранить код JavaScript в комментариях документации и параметрах командной строки. Если параметр командной строки не задан и обнаружен код JavaScript, то средство Javadoc выдает ошибку.
    JDK-8138725 (не общедоступно)
  • Минимальная длина ключа для подписей XML увеличена до 1024
    Режим безопасной проверки подписей XML был усовершенствован, чтобы ограничить применение используемых по умолчанию ключей RSA и DSA с размером меньше 1024 бит, поскольку такие ключи больше не являются достаточно безопасными для цифровых подписей. Кроме того, в файл java.security добавлено новое свойство безопасности jdk.xml.dsig.SecureValidationPolicy, которое можно использовать для управления ограничениями режима безопасной проверки. Режим безопасной проверки включается либо установкой значения "true" для свойства org.jcp.xml.dsig.secureValidation в подписи XML с помощью метода javax.xml.crypto.XMLCryptoContext.setProperty, либо выполнением кода с помощью компонента SecurityManager. Если подпись XML создана или проверена с использованием слабого ключа RSA или DSA, то генерируется исключение XMLSignatureException и сообщение "Ключи RSA менее 1024 бит запрещены, если включена безопасная проверка" либо "Ключи DSA менее 1024 бит запрещены, если включена безопасная проверка".
    JDK-8140353 (не общедоступно)
  • Добавлены ограничения на использование сертификатов с ключами DSA, размер которых меньше 1024 бит
    Ключи DSA с размером менее 1024 бит недостаточно надежны, и не следует их использовать при построении и проверке путей сертификации. Поэтому ключи DSA с размером менее 1024 бит по умолчанию деактивируются с помощью добавления значения DSA keySize < 1024 в свойство безопасности jdk.certpath.disabledAlgorithms. При необходимости можно обновить это ограничение для приложений в свойстве безопасности (jdk.certpath.disabledAlgorithms) и разрешить использование ключей меньшего размера (например, DSA keySize < 768). JDK-8139565 (не общедоступно)
  • В код разбора для кодирования DER добавлены дополнительные проверки
    В код разбора для кодирования DER добавлены дополнительные проверки, чтобы улучшить возможности выявления ошибок кодирования. Кроме того, при разборе подписей, в которых используется кодирование с неопределенной длиной, будут генерироваться исключения IOException. Обратите внимание, что изменение не затрагивает подписи, созданные с помощью поставщиков JDK по умолчанию. JDK-8168714 (не общедоступно)
  • Добавлены ограничения доступа для URLClassLoader.newInstance
    Загрузчики классов, созданные с помощью метода java.net.URLClassLoader.newInstance, можно использовать для загрузки классов из списка заданных URL-адресов. Если у вызывающего кода нет доступа к одному или нескольким URL-адресам, а доступные артефакты URL-адресов не содержат требуемого класса, то генерируется исключение ClassNotFoundException или похожее. Раньше при отказе в доступе к URL-адресу генерировалось исключение SecurityException. Если необходимо восстановить прежнее поведение, то изменение можно отключить с помощью системного свойства jdk.net.URLClassPath.disableRestrictedPermissions. JDK-8151934 (не общедоступно)
  • Добавлено новое настраиваемое свойство logging.properties java.util.logging.FileHandler.maxLocks
    Новое настраиваемое свойство java.util.logging.FileHandler.maxLocks добавлено в компонент java.util.logging.FileHandler. В файле конфигурации протоколирования можно определить новое свойство протоколирования, которое позволяет настроить максимальное число блокировок файлов журналов для обработки компонентом FileHandler. По умолчанию используется значение 100. В среде с высокой степень параллелизма, где множество (более 101) автономных клиентских приложений используют API протоколирования JDK, может быть достигнут предельное значение по умолчанию (100), что приведет к сбою при получении блокировки файлов компонентом FileHandler и появлению исключения IO Exception. В этом случае перед развертыванием приложения можно повысить значение максимального числа блокировок с помощью нового свойства протоколирования. Необходимо переопределить значение по умолчанию maxLocks (100). Чтобы узнать больше, см. документацию по API-интерфейсу компонентов java.util.logging.LogManager и java.util.logging.FileHandler. См. JDK-8153955
Примечания
Улучшена защита загрузки удаленных классов с помощью JNDI

По умолчанию загрузка удаленных классов через фабрики объектов JNDI, сохраненных в службах имен и каталогов, отключена. Чтобы включить загрузку удаленных классов с помощью реестра RMI или службы имен COS, установите для следующего системного свойства значение "true":

    com.sun.jndi.rmi.object.trustURLCodebase
    com.sun.jndi.cosnaming.object.trustURLCodebase

JDK-8158997 (не общедоступно)

Команда "jarsigner -verbose -verify" приводит к печати алгоритмов, используемых для подписывания файлов JAR

Усовершенствован инструмент jarsigner, который теперь показывает сведения об алгоритмах и ключах, используемых для создания подписанного файла JAR, а также отображает подсказку о слабых ключах или алгоритмах.

В частности, при вызове "jarsigner -verify -verbose filename.jar" выполняется печать отдельного раздела с информацией о подписи и меткой времени (если существует) внутри подписанного файла JAR, даже если по каким-либо причинам файл считается неподписанным. Если какой-либо используемый алгоритм или ключ считается слабым, как указано в свойстве безопасности jdk.jar.disabledAlgorithms, то к нему добавляется метка "(weak)".

Например:

- Signed by "CN=weak_signer"
   Digest algorithm: MD2 (weak) 
   Signature algorithm: MD2withRSA (weak), 512-bit key (weak)
 Timestamped by "CN=strong_tsa" on Mon Sep 26 08:59:39 CST 2016
   Timestamp digest algorithm: SHA-256 
   Timestamp signature algorithm: SHA256withRSA, 2048-bit key 

См. JDK-8163304

Известные проблемы
Исключение IllegalArgumentException при подтверждении связи TLS

Ошибка в исправлении JDK-8173783 может привести к неполадкам на некоторых серверах TLS. Проблема возникает из-за исключения IllegalArgumentException, которое генерирует код подтверждения связи TLS.

java.lang.IllegalArgumentException: System property
jdk.tls.namedGroups(null) contains no supported elliptic curves

Проблема может возникнуть, если сервер не поддерживает шифрование на основе эллиптических кривых, которое требуется для обработки поля расширения имени эллиптической кривой (если имеется). Пользователям рекомендуется выполнить обновление до данного выпуска. По умолчанию в обновления JDK 7 и более поздние версии JDK включен поставщик безопасности SunEC, в котором реализована поддержка шифрования на основе эллиптических кривых. Описанная проблема должна отсутствовать в этих выпусках, если поставщик безопасности не был изменен. См. JDK-8173783

javapackager и fx:deploy объединяют в пакет весь JDK вместо JRE

Известна ошибка Java Packager для Mac, при которой весь комплект JDK объединяется с пакетом приложения, что приводит к созданию пакета очень большого размера. Временное решение: использовать параметр -Bruntime в средстве создания пакетов. Например: -Bruntime=JavaAppletPlugin.plugin, где JavaAppletPlugin.plugin для объединения в пакет JRE расположен в текущем каталоге. См. JDK-8166835

Если контроль учетных записей (UAC) отключен, то происходит сбой установки Java для пользователей, не являющихся администраторами

Если контроль учетных записей (UAC) отключен, то при установке Java пользователями, не являющимися администраторами, происходит сбой без отображения предупреждений или запросов. Установщик закрывает каталог jds<number>.tmp в каталоге %TEMP%.
JDK-8161460 (не общедоступно)

Новые функции
Добавлено свойство безопасности для настройки режима безопасной проверки подписи XML

Добавлено новое свойство безопасности jdk.xml.dsig.secureValidationPolicy, которое позволяет настроить собственные ограничения для режима безопасной проверки подписи XML. Значение по умолчанию для данного свойства в файле конфигурации java.security:

jdk.xml.dsig.secureValidationPolicy=\
    disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\
    disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\
    disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\
    disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\
    maxTransforms 5,\
    maxReferences 30,\
    disallowReferenceUriSchemes file http https,\
    noDuplicateIds,\
    noRetrievalMethodLoops

Для получения дополнительных сведений см. определение свойства в файле java.security. См. JDK-8151893

Конфигурация фильтра сериализации

В функцию фильтрования сериализации добавлен новый механизм, который позволяет фильтровать входящие потоки данных сериализации объектов для повышения надежности и безопасности. Каждый объект ObjectInputStream применяет настроенный фильтр к содержимому потока во время десериализации. Настройка фильтров выполняется с помощью системного свойства или настроенного свойства безопасности. Значения шаблонов "jdk.serialFilter" описаны в JEP 290 Serialization Filtering и <JRE>/lib/security/java.security. Действия с фильтрами записываются в журнал "java.io.serialization", если он включен. См. JDK-8155760

Улучшена проверка ограничений RMI

Для реестра RMI и распределенного сбора мусора используются механизмы, описанные в JEP 290 Serialization Filtering, которые повышают надежность сервиса. Для реестра RMI и распределенного сбора мусора реализованы встроенные фильтры белых списков для типичных классов, которые планируется использовать с каждым сервисом. Можно также настроить дополнительные шаблоны фильтров с помощью системного свойства или свойства безопасности. Синтаксис шаблонов для свойств "sun.rmi.registry.registryFilter" и "sun.rmi.transport.dgcFilter" описан в JEP 290 и <JRE>/lib/security/java.security. JDK-8156802 (не общедоступно)

Добавлен механизм, который разрешает не применять ограничения алгоритма к нестандартным корневым центрам сертификации

В файле java.security добавлено дополнительное ограничение "jdkCA" в свойство jdk.certpath.disabledAlgorithms. Это ограничение запрещает применение указанного алгоритма, только в том случае, если алгоритм используется в цепочке сертификатов, которая завершается в отмеченном якоре доверия в хранилище ключей lib/security/cacerts. Если ограничение jdkCA не задано, то запрещается применять все цепочки, использующие указанный алгоритм. Ограничение jdkCA можно использовать в выражении DisabledAlgorithm только один раз. Пример. Чтобы применить это ограничение к сертификатам SHA-1, добавьте SHA1 jdkCA
См. JDK-8140422

Дата окончания срока действия Java

Дата истечения срока действия для 8u121: 18 апреля 2017 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u121) 18 мая 2017 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Список ошибок предыдущих версий, исправленных в этом выпуске, см. на странице Исправления ошибок JDK 8u121.

» Примечания к выпуску 8u121


Java 8 (обновление 111) (8u111)

Ключевые моменты выпуска
  • Данные IANA версии 2016f
    JDK 8u111 содержит версию 2016f данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE. См. JDK-8159684.
  • Изменения сертификатов: новый корневой центр сертификации для подписывания кода JCE
    Для поддержки более длинных ключей и более стойких алгоритмов подписей создан новый корневой центр сертификации для подписывания кода JCE, и соответствующий сертификат добавлен в Oracle JDK. Теперь для подписания сертификатов, выпускаемых этим центром сертификации, будет использоваться новый код поставщика JCE. По умолчанию этот центр сертификации будет выпускать новые запросы на подписание сертификатов кода поставщика JCE.

    Существующие сертификаты текущего корневого центра сертификации, используемые для подписывания кода поставщика JCE, по-прежнему будут действовать. Однако в будущем этот корневой центр сертификации может быть отключен. Рекомендуется запросить новые сертификаты и переподписать существующие файлы JAR. Чтобы узнать больше о подписании поставщика JCE, см. документ How to Implement a Provider in the Java Cryptography Architecture. JDK-8141340 (не общедоступно)
  • Меню служб
    Управление жизненным циклом компонентов меню AWT вызывало проблемы на некоторых платформах. Данное исправление улучшает синхронизацию состояния меню и контейнеров. JDK-8158993 (не общедоступно)
  • Отключение базовой аутентификации для туннеллирования HTTPS
    В некоторых средах определенные схемы аутентификации могут быть нежелательны при проксировании HTTPS. Поэтому схема базовой аутентификации была по умолчанию деактивирована в среде выполнения Oracle Java с помощью добавления значения "Basic" в сетевое свойство jdk.http.auth.tunneling.disabledSchemes. Теперь прокси-серверы, запрашивающие Базовую аутентификацию при настройке туннеля для HTTPS, по умолчанию будут игнорироваться. При необходимости эту схему аутентификации можно активировать повторно, удалив значение Basic из сетевого свойства jdk.http.auth.tunneling.disabledSchemes или указав для системного свойства с таким же именем значение "" (пусто) в командной строке. Кроме того, сетевые свойства jdk.http.auth.tunneling.disabledSchemes и jdk.http.auth.proxying.disabledSchemes, а также системные свойства с такими же именами можно использовать для отключения других схем аутентификации, которые могут быть активны при настройки туннеля для HTTPS или проксировании HTTP. JDK-8160838 (не общедоступно)
  • Ограничения для JAR, подписанных с помощью слабых алгоритмов и ключей
    В этом выпуске JDK добавлены новые ограничения по проверке подписанных файлов JAR. Если подписанный файл JAR использует отключенный алгоритм или размер ключа меньше минимально допустимого, то операции проверки подписи проигнорируют имеющуюся подпись и будут обрабатывать файл JAR, как не подписанный. Это может происходить в следующих типах приложений, которые используют подписанные файлы JAR:
    1. Апплеты и приложения Web Start
    2. Автономные и серверные приложения, запущенные с включенным диспетчером SecurityManager и сконфигурированные с помощью файла политик, который предоставляет разрешения на базе модуля подписей кода JAR.

    Списком отключенных алгоритмов можно управлять с помощью нового свойства безопасности jdk.jar.disabledAlgorithms в файле java.security. Это свойство содержит список отключенных алгоритмов и размеров ключей для криптографически подписанных файлов JAR.

    В данном выпуске применяются ограничения к следующим алгоритмам и размерам ключа:
    1. MD2 (в алгоритме выборки или подписи)
    2. Ключи RSA менее 1024 бит
    ПРИМЕЧАНИЕ. Мы планируем ограничить подписи на базе MD5 в подписанных файлах JAR в критическом обновлении (CPU) в апреле 2017 г.

    Чтобы проверить, не использовался ли для подписывания файла JAR слабый алгоритм или ключ, можно использовать двоичный файл jarsigner, который поставляется с JDK. Запуск команды jarsigner -verify -J-Djava.security.debug=jar для файла JAR, подписанного с помощью слабого алгоритма или ключа, позволит получить больше информации об отключенном алгоритме или ключе.

    Например, чтобы проверить файл JAR test.jar, используйте следующую команду:
    jarsigner -verify -J-Djava.security.debug=jar test.jar

    Если в данном примере файл подписан с помощью слабого алгоритма подписи, например MD2withRSA, то отобразится следующий результат:
    jar: beginEntry META-INF/my_sig.RSA
    jar: processEntry: processing block
    jar: processEntry caught: java.security.SignatureException: Signature check failed. Disabled algorithm used: MD2withRSA
    jar: done with meta!

    Обновленная команда jarsigner будет завершена со следующим предупреждением:
    "Невозможно выполнить синтаксический анализ или проверку подписи. Файл JAR будет обработан как неподписанный. Возможно, файл JAR был подписан с помощью слабого алгоритма, который отключен. Чтобы узнать больше, повторно запустите команду jarsigner с включенной функцией отладки (-J-Djava.security.debug=jar)"

    Чтобы решить проблему, необходимо повторно подписать файл JAR с помощью более стойкого алгоритма или размера ключа. Либо можно отменить ограничения, удалив соответствующие слабые алгоритмы или размеры ключей из свойства безопасности jdk.jar.disabledAlgorithms. Однако этого делать не рекомендуется. Перед повторным подписыванием файлов JAR необходимо удалить из них существующие подписи. Это можно сделать с помощью утилиты zip, выполнив следующую команду:

    zip -d test.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*.DSA'

    Рекомендуется периодически проверять документ Oracle JRE and JDK Cryptographic Roadmap на странице http://java.com/cryptoroadmap, чтобы быть в курсе запланированных ограничений для подписанных файлов JAR и прочих компонентов безопасности. В частности, планируется ограничить подписи на базе MD5 в подписанных файлах JAR в критическом обновлении (CPU) в апреле 2017 г.

    Чтобы проверить, не подписаны ли файлы JAR с помощью MD5, добавьте MD5 в свойство безопасности jdk.jar.disabledAlgorithms, например:

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024

    и запустите команду jarsigner -verify -J-Djava.security.debug=jar для файлов JAR, как описано выше.
    JDK-8155973 (не общедоступно)
  • В диалоговое окно аутентификатора развертывания добавлено предупреждение
    В диалоговое окно подключаемого модуля аутентификации добавлено предупреждение для случаев, когда применяется базовая аутентификация HTTP (учетные данные передаются незашифрованными) при использовании прокси или игнорировании протоколов SSL/TLS:
    "ПРЕДУПРЕЖДЕНИЕ. Схема базовой аутентификации передаст учетные данные открытым текстом. Подтвердите эту операцию".
    JDK-8161647 (не общедоступно)
Известные проблемы
Некоторые события недоступны в записях JFR в Windows
В записях JFR в ОС Windows недоступны следующие события для выпуска 8u111:
  1. hotspot/jvm/os/processor/cpu_load
  2. os/processor/context_switch_rate

Это происходит из-за регрессии JDK-8063089, которая добавлена в 8u111 с изменениями для JDK-8162419. Исправление для JDK-8063089 не удалось добавить в выпуск 8u111. Оно будет доступно в следующей сборке 8u111 BPR и в следующем общедоступном выпуске.
JDK-8063089 (не общедоступно)

JVM вызывает исключения NullPointerException в MacOS Sierra 10.12

В MacOS Sierra 10.12 если пользователь нажимает клавишу-модификатор (например, Command, Shift или Alt) при работе с апплетом в браузере, то может отобразиться окно ошибки с заголовком "Внутренняя ошибка". На панели Dock также отобразится значок "exec". Пользователь может закрыть апплет или попытаться перезапустить его без нажатия клавиши-модификатора. См. JDK-8165867.

Дата окончания срока действия Java

Срок действия выпуска 8u111: 17 января 2017 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u111) 17 февраля 2017 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Список ошибок предыдущих версий, исправленных в этом выпуске, см. на странице Устранение ошибок версии JDK 8u111.

» Примечания к выпуску 8u111


Java 8 (обновление 101) (8u101)

Ключевые моменты выпуска
  • Данные IANA версии 2016d
    JDK 8u101 содержит версию 2016d данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE. См. JDK-8151876.
  • Изменения сертификатов
    Добавлены новые сертификаты DTrust в корневые центры сертификации
    Добавлено два корневых сертификата:
    • D-TRUST Root Class 3 CA 2 2009
      alias: dtrustclass3ca2
      DN: CN=D-TRUST Root Class 3 CA 2 2009, O=D-Trust GmbH, C=DE
    • D-TRUST Root Class 3 CA 2 EV 2009
      alias: dtrustclass3ca2ev
      DN: CN=D-TRUST Root Class 3 CA 2 EV 2009, O=D-Trust GmbH, C=DE
    См. JDK-8153080

    Добавлены новые сертификаты Iden в корневые центры сертификации
    Добавлено три корневых сертификата:
    • IdenTrust Public Sector Root CA 1
      alias: identrustpublicca
      DN: CN=IdenTrust Public Sector Root CA 1, O=IdenTrust, C=US
    • IdenTrust Commercial Root CA 1
      alias: identrustcommercial
      DN: CN=IdenTrust Commercial Root CA 1, O=IdenTrust, C=US
    • IdenTrust DST Root CA X3
      alias: identrustdstx3
      DN: CN=DST Root CA X3, O=Digital Signature Trust Co.
    См. JDK-8154757

    Удален корневой сертификат Comodo
    Корневой сертификат Comodo "UTN - DATACorp SGC" удален из файла cacerts. См. JDK-8141540

    Удален корневой сертификат Sonera Class1
    Корневой сертификат "Sonera Class1 CA" удален из файла cacerts. См. JDK-8141276.
  • Улучшен контроль доступа к javax.rmi.CORBA.ValueHandler
    Класс javax.rmi.CORBA.Util предоставляет методы, которые можно использовать в заглушках и привязках для выполнения основных операций. Также выполняет функции фабрики для объектов ValueHandler. Интерфейс javax.rmi.CORBA.ValueHandler предоставляет службы для поддержки чтения и записи типов значений в потоках GIOP. Повышен уровень безопасности этих служебных программ. Добавлено разрешение java.io.SerializablePermission("enableCustomValueHanlder"). Оно используется для установления доверенных отношений между пользователями API-интерфейсов javax.rmi.CORBA.Util и javax.rmi.CORBA.ValueHandler.

    Обязательное разрешение – "enableCustomValueHanlder" SerializablePermission. При использовании стороннего кода, работающего с установленным компонентом SecurityManager, но не имеющего нового разрешения при вызове Util.createValueHandler(), произойдет сбой с исключением AccessControlException.

    В JDK8u и более ранних выпусках такое поведение проверки разрешений можно переопределить, определив системное свойство "jdk.rmi.CORBA.allowCustomValueHandler".

    Для корректной работы внешних приложений, явно вызывающих javax.rmi.CORBA.Util.createValueHandler, необходимо внести изменения в конфигурацию, если установлен компонент SecurityManager и не выполнено ни одно из двух требований:
    1. Разрешение java.io.SerializablePermission("enableCustomValueHanlder") не выдается компонентом SecurityManager.
    2. Для приложений, работающих на базе JDK8u и более ранних версий, системное свойство "jdk.rmi.CORBA.allowCustomValueHandler" не определяется, либо для него задается значение "false" (без учета регистра).

    Обратите внимание, что ошибка "enableCustomValueHanlder" будет исправлена в выпусках октября 2016 г. В этих и последующих выпусках JDK "enableCustomValueHandler" будет правильным разрешением SerializationPermission для использования.
    JDK-8079718 (не общедоступно)
  • В jarsigner добавлена поддержка указания алгоритма, генерирующего хэш временной метки
    В jarsigner добавлен новый параметр -tsadigestalg для указания алгоритма выборки сообщений, генерирующего отпечаток сообщения, передаваемый на сервер TSA. В более ранних выпусках JDK использовался алгоритм выборки сообщений SHA-1. Если новый параметр не задан, в обновлениях JDK 7 и более поздних версиях семейства JDK будет использоваться алгоритм SHA-256. В обновлениях JDK 6 алгоритм SHA-1 будет по-прежнему использоваться в качестве алгоритма по умолчанию, но в стандартном потоке вывода будет создано предупреждение. См. JDK-8038837
  • Хранилище ключей MSCAPI может обрабатывать сертификаты с одинаковыми именами
    Хранилище ключей Java SE не допускает использование сертификатов с одинаковыми псевдонимами. Однако в ОС Windows можно хранить в одном хранилище ключей несколько сертификатов с неуникальными понятными именами. Исправление JDK-6483657 преобразует видимые псевдонимы таких сертификатов в уникальные имена и позволяет работать с ними в Java API. Обратите внимание, что это исправление не позволяет создавать сертификаты с одинаковыми именами в Java API. Оно позволяет только работать с сертификатами с одинаковыми именами, которые добавлены в хранилище ключей с помощью сторонних инструментов. По-прежнему не рекомендуется использовать в проектах несколько сертификатов с одинаковыми именами. В частности, следующее предложение не будет удалено из документации Java:
    "Во избежание проблем не рекомендуется использовать в хранилище ключей псевдонимы, которые различаются только регистром".
    См. JDK-6483657.
  • Методы API-интерфейса Deployment Toolkit больше не устанавливают JRE
    Методы API-интерфейса Deployment Toolkit installLatestJRE() и installJRE(requestedVersion) из deployJava.js, а также метод install() из dtjava.js больше не устанавливают JRE. Если установленная версия Java не отвечает минимальным требованиям безопасности, пользователь будет перенаправлен на сайт java.com для обновления JRE. JDK-8148310 (не общедоступно)
  • DomainCombiner больше не учитывает политику среды выполнения для статических объектов ProtectionDomain при объединении объектов ProtectionDomain
    В приложениях, использующих статические объекты ProtectionDomain с недостаточным набором разрешений (созданные с помощью двухаргументного конструктора), теперь может возникать исключение AccessControlException. Необходимо либо заменить статические объекты ProtectionDomain динамическими (созданными с помощью четырехаргументного конструктора) и расширить их набор разрешений посредством текущей политики, либо создать статический объект ProtectionDomain со всеми необходимыми разрешениями. JDK-8147771 (не общедоступно)
Известные проблемы
При использовании идентификатора статического класса Internet Explorer (IE) не распознает JRE 8u101

Если идентификатор статического класса используется для запуска апплета или веб-приложения при работе с JRE 8u101, то откроется ненужное диалоговое окно, в котором указано, что необходимо использовать последнюю версию JRE или отменить запуск, даже если пользователи работают с последней версией JRE (JRE 8u101). Данная ситуация применима только к ОС Windows и браузеру IE.

Не рекомендуется использовать идентификатор статического класса для выбора версии JRE (начиная с JDK 5u6, дек. 2005 г.) в соответствии с информацией на сайте http://www.oracle.com/technetwork/java/javase/family-clsid-140615.html.

Для решения проблемы пользователи могут выполнить одно из следующих действий:
  • Согласиться на запуск последней версии (8u101) и проигнорировать предупреждение.
  • Установить JRE 8u102 вместо JRE 8u101 для предотвращения появления диалогового окна.
Для решения проблемы разработчики могут выполнить одно из следующих действий:
  • Использовать идентификатор динамического класса вместо идентификатора статического класса.
  • Использовать java_version при работе с апплетом HTML или дескриптор JNLP при работе с JNLP.
JDK-8147457 (не общедоступно)

Дата окончания срока действия Java

Срок действия 8u101: до 19 октября 2016 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, срок действия JRE (версия 8u101) определяется вспомогательным механизмом и заканчивается 19 ноября 2016 года. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Список ошибок предыдущих версий, исправленных в этом выпуске, см. на странице Исправления ошибок JDK 8u101.

» Примечание к выпуску 8u101


Java 8 (обновление 91) (8u91)

Ключевые моменты выпуска
  • Данные IANA версии 2016a
    JDK 8u91 содержит версию 2016a данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки. Устранена задержка времени запуска апплета
    В JDK-8080977 появилась задержка при запуске апплета. Задержка наблюдается только в IE и составляет около 20 секунд. В JDK-8136759 эта задержка устранена. См. JDK-8136759
  • Исправление ошибки. Теперь создание подписей DSA выполняется после проверки стойкости ключа
    Если при создании подписей стойкость алгоритма выборки ниже, чем стойкость ключа для подписи (например, при использовании 2048, 256-разрядных ключей DSA с подписью SHA1withDSA), то операция завершится с ошибкой: "Стойкость алгоритма выборки SHA1 недостаточна для ключа такого размера". JDK-8138593 (не общедоступно)
  • Исправление ошибки. Проблема с активным подключением Firefox 42
    При запуске подключаемого модуля Java из файла plugin-container.exe (поведение по умолчанию в Firefox 42) и статусе апплета, отличного от "Готов(2)", вызовы JavaScript-to-Java не обрабатываются, так как это может привести к зависанию браузера. Если апплет не готов (статус отличен от 2), фактический метод Java не выполняется, и возвращается значение NULL.

    Если подключаемый модуль запускается из файла plugin-container.exe, не используйте вызовы JavaScript-To-Java, которые могут обрабатываться более 11 секунд (значение по умолчанию для параметра dom.ipc.plugins.hangUITimeoutSecs) или могут отобразить модальное диалоговое окно во время вызова JavaScript-To-Java. В этом случае основной поток браузера будет заблокирован, что может привести к зависанию браузера и завершению работы подключаемого модуля.

    Решение для Firefox 42: пользователи могут установить значение dom.ipc.plugins.enabled=false. Побочный эффект решения: изменения будут применены ко всем подключаемым модулям. JDK-8144079 (не общедоступно)
  • Исправление ошибки. Новый атрибут для серверов JMX RMI JRMP обозначает список имен классов для использования при десериализации учетных данных сервера
    Для среды Java определен новый атрибут, который позволяет серверу JMX RMI JRMP указывать список имен классов. Эти имена соответствуют закрытию имен классов, которые ожидаются сервером при десериализации учетных данных. Например, если ожидаемые учетные данные -
    List<string>
    , то закрытие включает конкретные классы, которые ожидаются в виде последовательного списка строк.

    По умолчанию этот атрибут используется только агентом по умолчанию со следующими значениями:
     {   
       "[Ljava.lang.String;",   
       "java.lang.String" 
     } 
    
    При десериализации учетных данных допускаются только массивы строк и строки. Имя атрибута:
    "jmx.remote.rmi.server.credential.types"
    
    Далее приведен пример, в котором пользователь запускает сервер с указанными именами классов учетных данных:
    Map<String, Object> env = new HashMap<>(1);
     env.put ( 
     "jmx.remote.rmi.server.credential.types",
       new String[]{
       String[].class.getName(),
       String.class.getName()
       }
       );
       JMXConnectorServer server
       = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbeanServer);
    
    Новая функция должна использоваться при помощи прямого указания значения:
    "jmx.remote.rmi.server.credential.types"

    JDK-8144430 (не общедоступно)
  • Исправление ошибки. Отключение алгоритма подписей MD5withRSA в поставщике JSSE
    Алгоритм подписей MD5 с RSA теперь считается небезопасным и больше не используется. Поэтому алгоритм MD5withRSA по умолчанию отключен в среде Oracle JSSE с помощью добавления "MD5withRSA" в свойство безопасности "jdk.tls.disabledAlgorithms". Теперь сообщения подтверждения соединения TLS и сертификаты X.509, подписанные с помощью алгоритма MD5withRSA, по умолчанию являются недопустимыми. Это изменение расширяет прежнее ограничение сертификата на базе MD5 ("jdk.certpath.disabledAlgorithms") и добавляет к нему сообщения подтверждения соединения в TLS версии 1.2. При необходимости алгоритм можно активировать, удалив "MD5withRSA" из свойства безопасности "jdk.tls.disabledAlgorithms". JDK-8144773 (не общедоступно)
  • Исправление ошибки. Добавлены новые сертификаты в корневые центры сертификации
    Добавлено восемь корневых сертификатов:
    • QuoVadis Root CA 1 G3
      alias: quovadisrootca1g3
      DN: CN=QuoVadis Root CA 1 G3, O=QuoVadis Limited, C=BM
    • QuoVadis Root CA 2 G3
      alias: quovadisrootca2g3
      DN: CN=QuoVadis Root CA 2 G3
    • QuoVadis Root CA 3 G3
      alias: quovadisrootca3g3
      DN: CN=QuoVadis Root CA 3 G3, O=QuoVadis Limited, C=BM
    • DigiCert Assured ID Root G2
      alias: digicertassuredidg2
      DN: CN=DigiCert Assured ID Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
    • DigiCert Assured ID Root G3
      alias: digicertassuredidg3
      DN: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
    • DigiCert Global Root G2
      alias: digicertglobalrootg2
      DN: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
    • DigiCert Global Root G3
      alias: digicertglobalrootg3
      DN: CN=DigiCert Global Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
    • DigiCert Trusted Root G4
      alias: digicerttrustedrootg4
      DN: CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US
    См. JDK-8145954 и JDK-8145955.
Примечания

Удаление статических JRE
Установщики Java для Windows до версии 8u91 по умолчанию не удаляли статически установленные JRE. Для удаления статически установленных JREs пользователям приходилось выбирать эти JRE вручную в пользовательском интерфейсе установщика Java. Начиная с версии Java 8u91 статически установленные JRE удаляются автоматически, если они не соответствуют минимальным требованиям безопасности. Дополнительную информацию о статической установке см. в разделе Конфигурация среды выполнения Java.

Дата окончания срока действия Java

Дата истечения срока действия для 8u91: 19 июля 2016 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, истечение срока действия JRE (версия 8u91) 19 августа 2016 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Список ошибок предыдущих версий, исправленных в этом выпуске, см. на странице Устранение ошибок версии JDK 8u91.

» Примечания к выпуску 8u91


Java 8 (обновление 77) (8u77)

Дата окончания срока действия Java

Дата истечения срока действия 8u77: 19 апреля 2016 года. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, истечение срока действия JRE (версия 8u77) 19 мая 2016 года обеспечивает вспомогательный механизм. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Примечания

Это предупреждение безопасности (8u77) основано на предыдущем выпуске 8u74 PSU. Все пользователи предыдущих выпусков JDK 8 должны выполнить обновление до этого выпуска. Для получения дополнительной информации о разнице между критическими исправлениями и наборами исправлений посетите страницу Описание выпусков Java CPU и PSU.

Предупреждение безопасности для CVE-2016-0636 не влияет на демонстрационные материалы, файлы примеров и документы для 8u77, поэтому демонстрационные материалы, файлы примеров и документы для версии 8u73 остаются актуальными до выпуска критического исправления в апреле.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

» Примечания к выпуску 8u77


Java 8 (обновление 73) (8u73)

Ключевые моменты выпуска
Дата окончания срока действия Java

Дата истечения срока действия 8u73: 19 апреля 2016 года. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, истечение срока действия JRE (версия 8u73) 19 мая 2016 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Примечания

Корпорация Oracle настоятельно рекомендует пользователям Java, загрузившим версии с ошибками и планирующим установить эти загруженные версии, отменить загрузки. Пользователям Java, установившим критические обновления версии января 2016 года для Java SE 6, 7 или 8, не требуется предпринимать никаких действий. Пользователи, которые не установили критические обновления версии января 2016 года для Java SE 6, 7 или 8, должны обновиться до выпусков Java SE 6, 7 или 8 с помощью предупреждений системы безопасности для CVE-2016-0603.

Предупреждение безопасности для CVE-2016-0603 не влияет на демонстрационные материалы, файлы примеров и документы для 8u73, поэтому демонстрационные материалы, файлы примеров и документы для версии 8u71 остаются актуальными до выпуска критического исправления в апреле.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE. Обратите внимание, что версия 8u73 не содержит сборок PSU, включенных в версию 8u72. Пользователям, которым требуется исправления ошибок, включенные в 8u72, должны обновиться до версии 8u74 вместо 8u73.

» Примечания к версии 8u73


Java 8 (обновление 71) (8u71)

Ключевые моменты выпуска
  • Данные IANA версии 2015g
    JDK 8u71 содержит версию 2015g данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки: при выполнении jps в качестве root информация отображается не полностью
    После установки исправления JDK-8050807 (исправлено в 8u31, 7u75 и 6u91) при выполнении jps в качестве root отображалась неполная информация из процессов Java, запущенных другими пользователями на некоторых системах. Теперь эта проблема устранена. См. JDK-8075773.
  • Исправление ошибки: программы установки останавливаются в конфигурациях ESC
    Пользователи, выполняющие Internet Explorer Enhance Security Configuration (ESC) на Windows Server 2008 R2, могли испытывать проблемы при установке Java в интерактивном режиме. Эта ошибка была устранена в версии 8u71. Программы установки, выполняющиеся в интерактивном режиме, больше не будут останавливаться в конфигурациях ESC. См. JDK-8140197.
  • Исправление ошибки: исправлена проблема, связанная с алгоритмами PBE, использующими шифрование AES
    Ошибка была исправлена для PBE, использующих 256-разрядное шифрование AES таким образом, что полученный ключ мог отличаться и не совпадать с ключами, ранее полученными из того же пароля. JDK-8138589 (не общедоступно).
  • Исправление ошибки: для максимального размера элемента XML добавлено значение по умолчанию
    Добавлено значение по умолчанию для максимального размера элемента. Дополнительные сведения об ограничениях, связанных с обработкой XML, см. в документе Руководства по Java, ограничения обработки. JDK-8133962 (не общедоступно)
  • Исправление ошибки: исправлена проблема с документацией для Enterprise MSI switch 'REMOVEOLDERJRES'
    В документации для Enterprise MSI приводятся параметры конфигурации. Параметр REMOVEOLDERJRES, используемый для удаления устаревших JRE, отсутствовал. Этот параметр добавлен вместе со следующим описанием:
    Если для параметра задано значение 1, удаляются более старые выпуски JRE, установленные в системе.
    Если задано значение по умолчанию: 0, старые версии JRE не удаляются
    JDK-8081237 (не общедоступно)
Дата окончания срока действия Java

Дата истечения срока действия 8u71: 19 апреля 2016 года. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u71) 19 мая 2016 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправления ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u71.

» Примечание к выпуску 8u71


Java 8 (обновление 66) (8u66)

Ключевые моменты выпуска

В выпуске 8u66 сборка 18 исправлена ошибка для Firefox.

  • Исправление ошибки: Вызов _releaseObject совершался из неверного потока
    Недавнее изменение в Firefox приводило к тому, что вызов _releaseObject совершался не из главного потока. Это могло приводить к состоянию гонки, что в свою очередь могло вызывать самопроизвольный сбой работы браузера. Эта ошибка была исправлена в сборке 18 выпуска 8u66. Дополнительные сведения см. в Bugs@Mozilla 1221448. См. JDK-8133523.
Подключаемый модуль Java не работает в Firefox после установки Java

При попытке выполнить подключаемый модуль Java может произойти неожиданный выход из Firefox 42. Варианты временных решений приведены в разделе "Часто задаваемые вопросы". См. JDK-8142908 (не общедоступно).

Дата окончания срока действия Java

Срок действия выпуска 8u66: 19 января 2016 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u66) 19 февраля 2016 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u66.

» Примечание к выпуску 8u66


Java 8 (обновление 65) (8u65)

Ключевые моменты выпуска
  • Данные IANA версии 2015f
    JDK 8u65 содержит версию 2015f данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Поддержка таблицы "Коды существующих фондов" (A.2) стандарта ISO 4217
    В этом усовершенствовании реализована поддержка кодов фондов таблицы A.2 стандарта ISO 4217. Ранее пакет JDK поддерживал только валюты из таблицы A.1. См. JDK-8074350.
  • Исправление ошибки: [mac osx] установленный клиент JRE AU не может обновить NEXTVER в Mac 10.11
    В выпуске 8u65 представлена новая программа установки для обновления OS X до последней версии. Программа установки используется для запланированных и ручных обновлений, а также пакетов, доступных на java.com и в OTN. Пользователи, столкнувшиеся с проблемой совместимости новой программы установки, могут вручную загрузить и установить программу установки .pkg в My Oracle Support.
  • Исправление ошибки: виртуальная машина Hotspot должна использовать интерфейс PICL для получения размера строки кэша на SPARC
    Теперь для определения размера строк кэша на Solaris/SPARC требуется библиотека libpicl. Если эта библиотека отсутствует или служба PICL недоступна, на виртуальной машин Java появится предупреждение и оптимизации компилятора, использующие инструкцию BIS (Block Initializing Store), будут отключены. См. JDK-8056124.
  • Исправление ошибки: параметр dns_lookup_realm по умолчанию должен иметь значение false
    Параметр dns_lookup_realm в файле Kerberos krb5.conf по умолчанию имеет значение false. См. JDK-8080637.
  • Исправление ошибки: предварительная загрузка libjsig.dylib приводит к взаимной блокировке при вызове signal()
    Приложения должны предварительно загрузить библиотеку libjsig, чтобы включить формирование цепочки сигнала. Ранее в OS X после предварительной загрузки libjsig.dylib любой вызов из собственного кода в signal() вызывал взаимную блокировку. Эта ошибка была исправлена. См. JDK-8072147.
  • Исправление ошибки: улучшена групповая динамика
    В реализации OpenJDK SSL/TLS/DTLS (поставщик SunJSSE) по умолчанию используются безопасные главные группы Diffie-Hellman. Пользователи могут настроить группы Diffie-Hellman через свойство безопасности, jdk.tls.server.defaultDHEParameters.
  • Исправление ошибки: сбой виртуальной машины при переопределении класса с помощью Instrumentation.redefineClasses
    Виртуальная машина Java могла дать сбой при переопределении класса с помощью Instrumentation.redefineClasses(). Сбой мог быть вызван ошибкой сегментации в SystemDictionary::resolve_or_null или внутренней ошибкой с сообщением "несовпадение тега с таблицей разрешения ошибок". Теперь эта проблема устранена. См. JDK-8076110.
Примечания

Когда в OSX 10.11 El Capitan включен SIP, определенные переменные среды, предназначенные для отладки приложений (например, DYLD_LIBRARY_PATH), могли удаляться из среды при запуске Java из командной строки или при двойном нажатии на файл JAR. Приложения не должны использовать эти переменные, они предназначены только для отладки во время разработки.

MD5 необходимо использовать для цифровых подписей, когда требуется устойчивость к конфликтам. Чтобы предотвратить использование MD5 в качестве алгоритма цифровой подписи во время операций с сертификатом X.509, MD5 добавляется в свойство безопасности jdk.certpath.disabledAlgorithms. Для приложений, продолжающих использование подписанного сертификата MD5, рекомендуется обновить ненадежный сертификат как можно скорее.

Известные проблемы

[macosx] Проблемы с доступностью экрана спонсорских предложений (a11y)
Пользователи, получающие доступ к пользовательскому интерфейсу в программе установки Java с клавиатуры, не могли использовать гиперссылки и флажки на экранах предложений программных дополнений. В качестве обходного решения для настройки параметров дополнений в пользовательском интерфейсе можно отключить такие предложения с помощью панели управления Java или путем передачи SPONSORS=0 в командной строке. Подробнее см. на странице Часто задаваемые вопросы по установке Java без спонсорских предложений.

Дата окончания срока действия Java

Срок действия версии 8u65: 19 января 2016 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u65) 19 февраля 2016 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u65.

» Примечание к выпуску 8u65


Java 8 (обновление 60) (8u60)

Ключевые моменты выпуска
  • Данные IANA версии 2015e
    JDK 8u60 содержит версию 2015e данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Устранение ошибки: Параметр dns_lookup_realm должен иметь значение false по умолчанию
    Параметр dns_lookup_realm в файле Kerberos' krb5.conf по умолчанию имеет значение false. См. 8080637.
  • Устранение ошибки: Отключение шифровальных наборов RC4
    Шифровальные наборы TLS на основе RC4 (например, TLS_RSA_WITH_RC4_128_SHA) теперь считаются скомпрометированными и не должны использоваться (см. RFC 7465). Таким образом, шифровальные наборы TLS на основе RC4 были отключены по умолчанию в реализации Oracle JSSE путем добавления "RC4" в свойство безопасности "jdk.tls.disabledAlgorithms" и удаления их из списка включенных по умолчанию шифровальных наборов. Эти наборы шифрования можно снова активировать, удалив "RC4" из свойства безопасности "jdk.tls.disabledAlgorithms" в файле java.security или с помощью динамического вызова метода Security.setProperty(), а также повторного добавления их в список включенных шифровальных наборов с помощью методов SSLSocket/SSLEngine.setEnabledCipherSuites(). Также можно воспользоваться параметром командной строки -Djava.security.properties, чтобы переопределить свойство безопасности jdk.tls.disabledAlgorithms. Например:
    java -Djava.security.properties=my.java.security ...
    , где my.java.security — это файл, содержащий свойство без RC4:
    jdk.tls.disabledAlgorithms=SSLv3
    Даже с этим параметром, заданным в командной строке, требуется повторно добавить наборы шифров на основе RC4 в список включенных наборов шифров с помощью методов SSLSocket/SSLEngine.setEnabledCipherSuites(). См. 8076221.
  • Устранение ошибки: Обнаружение типа поддерживаемого хранилища ключей для хранилищ JKS и PKCS12
    Режим совместимости хранилищ ключей. Для обеспечения взаимодействия тип хранилища ключей Java JKS теперь поддерживает режим совместимости хранилища ключей по умолчанию. Данный режим позволяет хранилищам ключей JKS получать доступ к форматам файлов JKS и PKCS12. Чтобы отключить режим совместимости хранилища ключей, установите для свойства безопасности keystore.type.compat значение false. См. 8062552.
  • Устранение ошибки: Исключены небезопасные способы мониторинга в выпуске JDK 8u
    Методы monitorEnter, monitorExit и tryMonitorEnter в файле sun.misc.Unsafe JDK 8u60 помечены как устаревшие и будут удалены в следующем выпуске. Данные методы не используются в JDK и редко используются за пределами JDK. См. 8069302.
  • Устранение ошибки: Извлечение записи JFR из файла ядра с помощью SA
    DumpJFR является инструментом на основе SA-агента, который можно использовать для извлечения данных Java Flight Recorder(JFR) из файлов ядра и активных процессов Hotspot. DumpJFR можно использовать в одном из следующих методов:
    • Присоединение DumpJFR к активному процессу:

      java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.tools.DumpJFR <pid>

    • Присоединение DumpJFR к файлу ядра:

      java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.tools.DumpJFR <java> <core>
    Инструмент DumpJFR создает дамп данных JFR в файле с именем recording.jfr текущей рабочей папки. См. 8065301 (не общедоступно).
  • Устранение ошибки: Локальные переменные с именем 'enum' приводят к ложным сбоям в работе компилятора
    Синтаксический анализатор javac некорректно выполняет синтаксический анализ локальных переменных с именем 'enum', что приводит к ложным сбоям в работе, если программа, содержащая такие локальные переменные, компилируется с флагом 'source', соответствующим выпуску, в котором конструкция 'enum' недоступна (например, '-source 1.4'). См. 8069181.
Комплект Java Development Kit для ARM, выпуск 8u60

Этот выпуск включает Java Development Kit for ARM, выпуск 8u60 (JDK 8u60 for ARM). Сведения о поддержке устройств ARM см. на странице Загружаемые ресурсы JDK for ARM. Системные требования, инструкции по установке и советы по поиску и устранению неполадок см. на странице Инструкции по установке.

Ограничение: Поддержка функции Native Memory Tracking в JDK for ARM ограничена. Параметр командной строки java XX:NativeMemoryTracking=detail не поддерживается для целевых объектов ARM (отображается сообщение об ошибке). Вместо этого используйте следующий параметр:
XX:NativeMemoryTracking=summary

Обновления документации в связи с улучшениями Nashorn
JDK 8u60 содержит новые улучшения для Nashorn. Информацию о следующих изменениях следует читать в сочетании с текущей документацией Nashorn.
  • Дополнение. В предыдущем разделе мы упоминали, что каждый объект JavaScript, представленный API-интерфейсам Java, реализует интерфейс java.util.Map. Это правило справедливо даже для массивов JavaScript. Однако данное поведение зачастую нежелательно или неожидаемо, если код Java планирует получить объекты после синтаксического анализа JSON. Библиотеки Java, которые работают с объектами после синтаксического анализа JSON, обычно ожидают использования массивами интерфейса java.util.List. Если необходимо представить объекты JavaScript, чтобы массивы были представлены в виде списков, а не карт, воспользуйтесь функцией Java.asJSONCompatible(obj), где obj является корнем дерева объектов JSON.
  • Исправление. Упомянутое предупреждение, размещенное в конце раздела Отображение типов данных, более не применимо. Nashorn обеспечивает преобразование внутренних строк JavaScript в java.lang.String в случае внешнего представления.
  • Исправление. Заявление в разделе Отображение типов данных, в котором сообщается, что "Например, массивы должны быть преобразованы явным образом,..." не является верным. Массивы автоматически преобразуются в типы массива Java, такие как java.util.List, java.util.Collection, java.util.Queue и java.util.Deque и т. д.
Изменения в наборе правил развертывания, версия 1.2
В JDK 8u60 реализован набор правил развертывания (DRS) 1.2, который содержит следующие изменения:
  • Добавьте элемент "checksum" как вспомогательный элемент "id", который может позволить определить неназначенные архивы jar с помощью контрольной суммы SHA-256 несжатой формы jar-файла:
    • Элемент "checksum" будет сопоставлять только неназначенные архивы jar, а указанный хэш будет сравниваться только относительно несжатой формы jar-файла.
    • Элемент "checksum" (идентичен элементу "certificate") имеет два аргумента "hash" и "algorithm", но в отличие от элемента "certificate" единственным поддерживаемым значением для "algorithm" является "SHA-256". Любые другие представленные значения будут пропускаться.
  • Разрешает применить элемент "message" ко всем типам правил, хотя ранее он применялся только к правилу блокировки:
    • В правиле запуска вспомогательный элемент сообщения будет вызывать отображение диалогового окна сообщения, в котором при отсутствии правила запуска в качестве поведения по умолчанию будет задано отображение сертификата или неподписанного диалогового окна. Сообщение будет отображаться в диалоговом окне сообщений.
    • В правиле по умолчанию сообщение будет отображаться только в случае, если в качестве действия по умолчанию задана блокировка. В данном случае сообщение будет отображаться в диалоговом окне блокировки.
  • Эхо "customer" блокируется в консоли Java, файлах трассировки и записях Java Usage Tracker.
    • До версии DRS 1.2 элементы "customer" могли быть включены (вместе с любыми вспомогательными элементами) в файл ruleset.xml. Данный элемент и все его вспомогательные элементы игнорируются. В DRS 1.2 по-прежнему выполняется функциональный пропуск элементов. Однако:
      • При синтаксическом анализе файла ruleset.xml все блоки "customer" будут использованы в эхо для консоли Java и файле трассировки развертывания (если консоль и трассировка включены).
      • При использовании правила все записи "customer" включены в то правило, которое будет добавлено в запись Java Usage Tracker (JUT) (при условии включения JUT).
В результате указанных выше изменений DTD для DRS 1.2 имеет следующую форму:
<!ELEMENT ruleset (rule*)>
<!ATTRIBUTE ruleset href CDATA #IMPLIED>
<!ATTRIBUTE ruleset version CDATA #REQUIRED>

<!ELEMENT rule (id, action)>

<!ELEMENT id (certificate?) (checksum?) >
<!ATTRIBUTE id title CDATA #IMPLIED>
<!ATTRIBUTE id location CDATA #IMPLIED>

<!ELEMENT certificate EMPTY>
<!ATTLIST certificate algorithm CDATA #IMPLIED>
<!ATTLIST certificate hash CDATA #REQUIRED>

<!ELEMENT checksum EMPTY>
<!ATTLIST checksum algorithm CDATA #IMPLIED>
<!ATTLIST checksum hash CDATA #REQUIRED>
 
<!ELEMENT action (message?)>
<!ATTRIBUTE permission (run | block | default) #REQUIRED>
<!ATTRIBUTE version CDATA #IMPLIED>
<!ATTRIBUTE force (true|false) "false">

<!ELEMENT message (#PCDATA)>
<!ATTLIST message locale CDATA #IMPLIED>

Дата окончания срока действия Java

Срок действия версии 8u60: 20 октября 2015 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u60) 20 ноября 2015 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u60.

» Примечание к выпуску 8u60


Java 8 (обновление 51) (8u51)

Ключевые моменты выпуска
  • Данные IANA версии 2015d
    JDK 8u51 содержит версию 2015d данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки: добавление новых корневых элементов Comodo в корневые ЦС
    Четыре новых корневых сертификата добавлены для Commodo:
    1. COMODO ECC Certification Authority
      alias: comodoeccca
      DN: CN=COMODO ECC Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
    2. COMODO RSA Certification Authority
      alias: comodorsaca
      DN: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
    3. USERTrust ECC Certification Authority
      alias: usertrusteccca
      DN: CN=USERTrust ECC Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
    4. USERTrust RSA Certification Authority
      alias: usertrustrsaca
      DN: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
    См. JDK-8077997 (не общедоступно).
  • Исправление ошибки: добавление новых корневых элементов GlobalSign в корневые ЦС
    Два новых корневых сертификата добавлены для GlobalSign:
    1. GlobalSign ECC Root CA - R4
      alias: globalsigneccrootcar4
      DN: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R4
    2. GlobalSign ECC Root CA - R5
      alias: globalsigneccrootcar5
      DN: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R5
    См. JDK-8077995 (не общедоступно).
  • Исправление ошибки: добавление Actalis в корневые ЦС
    Добавлен новый корневой сертификат:
    Actalis Authentication Root CA
    alias: actalisauthenticationrootca
    DN: CN=Actalis Authentication Root CA, O=Actalis S.p.A./03358520967, L=Milan, C=IT

    См. JDK-8077903 (не общедоступно).
  • Исправление ошибки: добавление нового корневого элемента Entrust ECC
    Добавлен новый корневой сертификат:
    Entrust Root Certification Authority - EC1
    alias: entrustrootcaec1
    DN: CN=Entrust Root Certification Authority - EC1, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US

    См. JDK-8073286 (не общедоступно).
  • Исправление ошибки: удаление старых корневых элементов Valicert Class 1 и 2 Policy
    Удалено два корневых сертификата для 1024-разрядных ключей:
    1. ValiCert Class 1 Policy Validation Authority
      alias: secomvalicertclass1ca
      DN: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/, OU=ValiCert Class 1 Policy Validation Authority, O="ValiCert, Inc.", L=ValiCert Validation Network
    2. ValiCert Class 2 Policy Validation Authority
      alias: valicertclass2ca
      DN: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/, OU=ValiCert Class 2 Policy Validation Authority, O="ValiCert, Inc.", L=ValiCert Validation Network
    См. JDK-8077886 (не общедоступно).
  • Исправление ошибки: удаление старых корневых элементов Thawte
    Удалено два корневых сертификата для 1024-разрядных ключей:
    1. Thawte Server CA
      alias: thawteserverca
      DN: EMAILADDRESS=server-certs@thawte.com, CN=Thawte Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
    2. Thawte Personal Freemail CA
      alias: thawtepersonalfreemailca
      DN: EMAILADDRESS=personal-freemail@thawte.com, CN=Thawte Personal Freemail CA, OU=Certification Services Division, O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA
    См. JDK-8074423 (не общедоступно).
  • Исправление ошибки: удаление более старых корневых элементов Verisign, Equifax и Thawte
    Удалено пять корневых сертификатов для 1024-разрядных ключей:
    1. Verisign Class 3 Public Primary Certification Authority - G2
      alias: verisignclass3g2ca DN: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
    2. Thawte Premium Server CA
      alias: thawtepremiumserverca
      DN: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
    3. Equifax Secure Certificate Authority
      alias: equifaxsecureca
      DN: OU=Equifax Secure Certificate Authority, O=Equifax, C=US
    4. Equifax Secure eBusiness CA-1
      alias: equifaxsecureebusinessca1
      DN: CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US
    5. Equifax Secure Global eBusiness CA-1,
      alias: equifaxsecureglobalebusinessca1
      DN: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US
    См. JDK-8076202 (не общедоступно).
  • Исправление ошибки: удаление корневых элементов ЦС TrustCenter из сертификатов CACert
    Удалено три корневых сертификата:
    1. TC TrustCenter Universal CA I
      alias: trustcenteruniversalcai
      DN: CN=TC TrustCenter Universal CA I, OU=TC TrustCenter Universal CA, O=TC TrustCenter GmbH, C=DE
    2. TC TrustCenter Class 2 CA II
      alias: trustcenterclass2caii
      DN: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE
    3. TC TrustCenter Class 4 CA II
      alias: trustcenterclass4caii
      DN: CN=TC TrustCenter Class 4 CA II, OU=TC TrustCenter Class 4 CA, O=TC TrustCenter GmbH, C=DE
    См. JDK-8072958 (не общедоступно).
  • Исправление ошибки: шифр RC4 устарел для провайдера SunJSSE
    RC4 теперь считается слабым шифром. Серверы не должны выбирать RC4 при наличии более сильного кандидата в комплектах шифров, запрашиваемых клиентом. Новое свойство безопасности, jdk.tls.legacyAlgorithms, добавлено для определения устаревших алгоритмов в реализации Oracle JSSE. Связанные с RC4 алгоритмы добавлены в список устаревших алгоритмов. См. JDK-8074006 (не общедоступно).
  • Исправление ошибки: запрет комплектов шифров RC4
    RC4 теперь считается скомпрометированным шифром. Комплекты шифров RC4 были удалены из списка включенных по умолчанию комплектов шифров на клиенте и сервере в реализации Oracle JSSE. Эти комплекты шифров по-прежнему можно включить с помощью методов SSLEngine.setEnabledCipherSuites() и SSLSocket.setEnabledCipherSuites(). См. JDK-8077109 (не общедоступно).
  • Исправление ошибки: улучшенная проверка сертификации
    Благодаря этому исправлению идентификация конечных точек JSSE не выполняет обратный поиск имен для IP-адресов по умолчанию в JDK. Если приложение не требует обратного поиска имен для необработанных IP-адресов в соединениях SSL/TLS и при этом возникает проблема совместимости идентификации конечных точек, то для перехода к обратному поиску имен можно использовать свойство системы "jdk.tls.trustNameService". Обратите внимание, что если служба имен не является надежной, включение обратного поиска имен может привести к возникновению MITM-атак. См. JDK-8067695 (не общедоступно).
Дата окончания срока действия Java

Срок действия версии 8u51: 20 октября 2015 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не могут подключиться к серверам Oracle, истечение срока действия JRE (версия 8u51) 20 ноября 2015 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u51.

» Примечание к выпуску 8u51


Java 8 (обновление 45) (8u45)

Ключевые моменты выпуска
  • Данные IANA версии 2015a
    JDK 8u45 содержит версию 2015a данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки: Требуется улучшить обработку файла jar. Начиная с версии JDK 8u45, при создании новых и/или распаковке существующих файлов .zip и .jar инструмент jar не позволяет добавлять символ наклонной черты "/" и символ ".." (точка-точка) в качестве компонентов пути к входному zip-файлу. При необходимости следует явно указывать в командной строке новый параметр "-P", позволяющий сохранить компонент точка-точка и/или абсолют пути. См. 8064601 (не общедоступно).
  • Исправление ошибки: В приложении jnlp со встроенным разделом "resource" возникает ошибка NPE при загрузке в jre8u40. Приложение jnlp с тегами , встроенными в тег <java> или , может возвращать ошибку NPE. Эта ошибка исправлена. Тег следует использовать только при фактическом использовании тега <java>. См. 8072631 (не общедоступно).
Дата окончания срока действия Java

Дата истечения срока действия для 8u45: 14 июля 2015 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u45) 14 августа 2015 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u45.

» Примечание к выпуску 8u45


Java 8 (обновление 40) (8u40)

Ключевые моменты выпуска
  • Данные IANA версии 2014j
    JDK 8u40 содержит версию 2014j данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки: стандартные и статические методы интерфейсов в JDI, JDWP и JDB. Начиная с версии JDK 8 в интерфейсах можно использовать непосредственно исполняемые статические и стандартные методы. Эти методы не исполняются через JDWP или JDI, что затрудняет их отладку. Подробности см. в документе Руководство по совместимости JDK 8. См. 8042123.
  • Исправление ошибки: На панели управления теперь можно включить Java Access Bridge для 32-разрядных сред JRE. Ранее флажок Enable Java Access Bridge (Включить Java Access Bridge) удалялся из панели управления Java при удалении 64-разрядных JRE даже в тех случаях, когда 32-разрядные JRE по-прежнему оставались в системе. Начиная с выпуска JDK 8u40, флажок Enable Java Access Bridge (Включить Java Access Bridge) сохраняется в разделе Панель управления -> Специальные возможности -> Центр специальных возможностей -> Использовать компьютер без экрана при наличии 32-разрядных JRE. Таким образом, пользователь может включить Java Access Bridge с помощью панели управления. См. 8030124.
  • Исправление ошибки: Модернизация JavaFX Media Stack в Mac OS X. Мультимедийные возможности JavaFX расширены за счет добавления платформы проигрывателя на базе AVFoundation. Разрешено удаление старой платформы на базе QTKit для совместимости с Mac App Store. См. 8043697 (не общедоступно)
  • Исправление ошибки: Отсутствуют API DOM. В выпуске JDK 8u40 API DOM устаревшего подключаемого модуля были случайно удалены. Если апплет требует использования com.sun.java.browser.dom.DOMService для связи с браузером, пользователям может потребоваться обновить свой апплет для использования netscape.javascript.JSObject или продолжить использование JDK 8 (обновление 31). Эта проблема разрешена в сборке 26, новые программы установки 8u40 опубликованы. Если вы столкнулись с этой проблемой, загрузите и выполните обновленные программы установки JDK 8u40. См. 8074564.
  • Исправление ошибки: Mac 10.10: в приложении с экраном-заставкой наблюдаются проблемы установки фокуса. В приложениях, запускаемых через webstart, и автономных приложениях, в которых используется экран-заставка, не удается установить фокус с помощью клавиатуры. Временное решение: запустите javaws с использованием параметра -Xnosplash. Эта проблема разрешена в сборке 27, новая программа установки 8u40 опубликована. Если вы столкнулись с этой проблемой, загрузите и выполните обновленную программу установки JDK 8u40. См. 8074668.
  • Усовершенствования инструмента Java Packager
    Выпуск JDK 8u40 содержит следующие усовершенствования для Java Packager:
  • Устаревшие API-интерфейсы
    Механизм переопределения утвержденных стандартов и механизм расширения устарели и, возможно, будут удалены в следующем выпуске. Изменения среды выполнения отсутствуют. Рекомендуется отказаться от использования механизмов 'переопределение утвержденных стандартов' или 'расширение' в существующих приложениях. Чтобы выявить случаи использования этих механизмов, воспользуйтесь опцией командной строки -XX:+CheckEndorsedAndExtDirs. Если любое из следующих условий является истинным, выдается ошибка.
    • Системное свойство -Djava.endorsed.dirs или -Djava.ext.dirs настроено для изменения местоположения по умолчанию.
    • Существует каталог${java.home}/lib/endorsed.
    • ${java.home}/lib/ext содержит файлы JAR помимо тех, которые содержатся в JDK.
    • Один из каталогов системных расширений для конкретной платформы содержит файлы JAR.
    Опция командной строки -XX:+CheckEndorsedAndExtDirs поддерживается в JDK 8u40 и более поздних версиях.
  • Различия между страницами инструмента JJS
    Японская версия страницы справки JJS отличается от английской версии. Некоторые неподдерживаемые опции удалены из английской версии страницы инструмента JJS. Японская версия будет обновлена позже. См. 8062100 (не общедоступно). Другие изменения страниц инструмента JJS см. в разделе "Усовершенствования инструментов в JDK 8".
  • Изменение значений по умолчанию для G1HeapWastePercent и G1MixedGCLiveThresholdPercent
    Значение по умолчанию для G1HeapWastePercent изменено с 10 на 5. Это позволяет снизить необходимость использования полнофункциональных сборщиков мусора. По этой же причине значение по умолчанию для G1MixedGCLiveThresholdPercent изменено с 65 на 85.
  • Новый интерфейс фильтрации доступа к классам Java
    Интерфейс jdk.nashorn.api.scripting.ClassFilter позволяет ограничить доступ к определенным классам Java из сценариев, выполняемых в машине сценариев Nashorn. Подробнее см. в разделе"Ограничение доступа к определенным классам Java через сценарии" в руководстве пользователя Nashorn и статье 8043717 (не общедоступно).
  • Проблемы со сторонними поставщиками JCE
    В исправлении JDK-8023069 (в JDK 8u20) обновлены поставщики SunJSSE и SunJCE, включая некоторые внутренние интерфейсы. Некоторые сторонние поставщики JCE (например, RSA JSAFE) используют внутренние интерфейсы sun.* и поэтому не смогут работать с обновленным поставщиком SunJSSE. Эти поставщики необходимо обновить для работы с обновленным поставщиком SunJSSE. Если вы столкнулись с этой проблемой, свяжитесь со своим поставщиком JCE для обновления. См. 8058731.
  • Повторное включение шифрования Solaris Crypto Framework
    Если вы работаете в среде Solaris 10, изменение внесено для повторного включения операций с MD5, SHA1 и SHA2 через Solaris Crypto Framework. Если вы столкнулись с исключением CloneNotSupportedException или сообщением об ошибке PKCS11 CKR_SAVED_STATE_INVALID в JDK 8u40, вам необходимо проверить и применить следующие исправления или их новые версии:
    • 150531-02 в системах Sparc
    • 150636-01 в системах x86
  • Обновление руководства по устранению неисправностей для NMT
    NMT (Отслеживание собственной памяти) – функция виртуальной машины Java HotSpot, отслеживающая использование внутренней памяти HotSpot JVM. Функция NMT может использоваться для мониторинга распределения внутренней памяти и диагностики утечек памяти виртуальной машины. На страницу усовершенствований виртуальной машины добавлено описание функций NMT. См. раздел "Усовершенствования виртуальной машины Java в Java SE 8". В руководство по устранению неисправностей добавлена информация о функциях NMT. См. раздел "Отслеживание собственной памяти".
  • Удалена функция запуска нескольких JRE
    Задокументированная функция выбора версии JRE во время запуска и функция запуска нескольких JRE удалена в JDK 8u40. Приложения, развернутые с использованием этой функции, должны перейти на альтернативные решения развертывания, например Java WebStart.
  • Улучшения JavaFX
    Начиная с версии JDK 8u40 в улучшенных элементах управления JavaFX реализована поддержка вспомогательных технологий. Это означает, что элементы управления JavaFX теперь поддерживают специальные возможности. Кроме того, разработчикам предоставляется общедоступный API-интерфейс, позволяющий создавать собственные элементы управления с поддержкой специальных возможностей. Ниже перечислены специальные возможности, поддерживаемые на платформах Windows и Mac OS X:
    • Считывание элементов управления JavaFX программами для чтения с экрана
    • Функции элементов управления JavaFX дублируются клавиатурой
    • Предусмотрен специальный режим высокой контрастности, улучшающий видимость элементов управления для пользователей.
    См. 8043344 (не общедоступно).

    Выпуск JDK 8u40 включает в себя новые элементы пользовательского интерфейса JavaFX: вертикальный список с прокруткой, поддержку форматированного текста и стандартный набор диалоговых окон оповещения.
    • Вертикальный список с прокруткой: однострочное текстовое поле, позволяющее пользователю выбирать числа или значения объектов из упорядоченной последовательности. Подробное описание см. в классе javafx.scene.control.Spinner.
    • Форматированный текст: новый класс TextFormatter предоставляет возможность форматирования текста для подклассов TextInputControl (например, TextField и TextArea). Подробное описание см. в классе javafx.scene.control.TextFormatter.
    • Диалоговые окна: класс Dialog позволяет приложениям создавать собственные диалоговые окна. Дополнительно предоставляется класс Alert, расширяющий класс Dialog и обеспечивающий поддержку нескольких типов встроенных диалоговых окон, отображаемых в качестве запросов для пользователя. Подробное описание см. в классах javafx.scene.control.Dialog, javafx.scene.control.Alert, javafx.scene.control.TextInputDialog, javafx.scene.control.ChoiceDialog.
    См. 8043350 (не общедоступно).
Коммерческие функции
  • AppCDS (Совместное использование данных о классе приложения)
    AppCDS (Совместное использование данных о классе приложения) расширяет CDS, что позволяет распределять классы из каталогов стандартных расширений и из папки класса в общем архиве. Это экспериментальная функция, она не лицензирована для коммерческого использования. См. опцию -XX:+UseAppCDS на странице средства запуска Java.
  • Управление общей памятью
    Начиная с JDK 8u40, в JDK добавлено понятие "дефицит памяти". Дефицит памяти – это свойство, отражающее общее использование памяти (ОЗУ) в системе. Чем выше значение свойства "дефицит памяти", тем быстрее система может столкнуться с нехваткой памяти. Это экспериментальная функция, она не лицензирована для коммерческого использования. При увеличении значения этого свойства JDK будет пытаться снизить использование памяти. Чаще всего это достигается за счет уменьшения размера динамической памяти Java. Действия JDK по сокращению использования памяти могут привести к снижению производительности. Этот результат является намеренным. Приложение предоставляет данные об уровне дефицита через объект JMX MXBean по шкале от 0 (нет дефицита) до 10 (критическая нехватка свободной памяти). Для включения этой функции необходимо зарегистрировать jdk.management.cmm.SystemResourcePressureMXBean. После регистрации дефицит памяти задается с помощью атрибута "MemoryPressure".Также доступен
    новый флаг командной строки -XX:MemoryRestriction, который использует один из следующих аргументов: 'none', 'low', 'medium' или 'high'. Этот флаг задает начальный дефицит JDK и поддерживается также в тех случаях, когда объект MXBean не зарегистрирован. Для общего управления памятью (Cooperative Memory Management) требуется G1 GC (-XX:+UseG1GC). Эта функция не совместима с флагом -XX:+ExplicitGCInvokesConcurrent.
  • Новые коммерческие флаги
    Для коммерческих владельцев лицензий теперь доступны две новые опции VM:
    • -XX:+ResourceManagement
    • -XX:ResourceManagementSampleInterval=value (в миллисекундах)
    Подробнее см. документацию "Средство запуска Java".
  • Добавлена документация к программе установки MSI Installer
    Доступно Руководство по программе установки Microsoft Windows Installer (MSI) Enterprise JRE Installer. Для использования программы установки MSI Enterprise JRE Installer в производстве требуется коммерческая лицензия. Узнайте подробнее о коммерческих функциях и о том, как их активировать.
Дата окончания срока действия Java

Дата истечения срока действия 8u40: 14 апреля 2015 года. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которые не подключаются к серверам Oracle, истечение срока действия JRE (версия 8u40) 14 мая 2015 года обеспечивает вспомогательный механизм. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u40.

» Примечание к выпуску 8u40


Java 8 (обновление 31) (8u31)

Ключевые моменты выпуска
  • Данные IANA версии 2014j
    JDK 8u31 содержит версию 2014j данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Протокол SSLv3 по умолчанию отключен
    Начиная с выпуска JDK 8u31 протокол SSLv3 (Secure Socket Layer) деактивирован и стал недоступен. См. свойство jdk.tls.disabledAlgorithms в файле \lib\security\java.security. Если все же необходимо использовать протокол SSLv3, его можно повторно активировать, удалив текст "SSLv3" из свойства jdk.tls.disabledAlgorithms в файле java.security или динамически установив это свойство безопасности перед инициализацией JSSE.
  • Изменения в Java Control Panel
    Начиная с выпуска JDK 8u31 протокол SSLv3 удален из параметров Java Control Panel Advanced. Если требуется использовать SSLv3 для приложений, включите его вручную, выполнив следующие действия:
    • Включите протокол SSLv3 на уровне JRE: как описано в предыдущем разделе.
    • Включите протокол SSLv3 на уровне развертывания: отредактируйте файл deployment.properties, добавив в него следующий текст:

      deployment.security.SSLv3=true.
Дата окончания срока действия Java

Дата истечения срока действия 8u31: 14 апреля 2015 года. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u31) 14 мая 2015 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u31.

» Примечание к выпуску 8u31


Java 8 (обновление 25) (8u25)

Ключевые моменты выпуска
  • Данные IANA версии 2014c
    JDK 8u25 содержит версию 2014c данных часовых поясов IANA. Дополнительную информацию см. в разделе Версии данных часовых поясов в программном обеспечении JRE.
  • Исправление ошибки: уменьшение режима предпочтений RC4 в списке разрешенных пакетов шифрования
    Это исправление снижает предпочтения RC4 на основе пакетов шифрования в списке разрешенных пакетов шифрования по умолчанию поставщика SunJSSE. См. 8043200 (не общедоступно).
  • Исправление ошибки:в JRE 8u20 происходит сбой при использовании японской службы обмена сообщениями на ОС Windows
    В VM происходит сбой при использовании элементов управления Swing при вводе японских или китайских символов на платформе Windows. Эта ошибка исправлена. См. 8058858 (не общедоступно).
Инструкции по отключению SSL v3.0 в Oracle JDK и JRE

Oracle рекомендует пользователям и разработчикам отключить протокол SSLv3.
» Как пользователи Java могут убедиться, что они не подвержены уязвимости 'Poodle' SSL V3.0?

Дата окончания срока действия Java

Срок действия версии 8u25: 20 января 2015 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u25) 20 февраля 2015 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle Java SE.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u25.

» Примечание к выпуску 8u25


Java 8 (обновление 20) (8u20)

Ключевые моменты выпуска
  • В Java Management API добавлены новые флаги
    Флагами MinHeapFreeRatio и MaxHeapFreeRatio теперь можно управлять. Это означает, что их можно менять во время выполнения с помощью API управления в Java. Поддержка этих флагов также добавлена в ParallelGC как часть политики адаптивного размера.
  • Изменения программы установки Java
    • Выпущена новая программа установки Microsoft Windows Installer (MSI) Enterprise JRE Installer, которая позволяет устанавливать JRE на предприятии. Дополнительную информацию см. в разделе Загрузка программы установки в документе Установка JRE для Microsoft Windows. Программа установки MSI Enterprise JRE Installer доступна только в виде компонента Java SE Advanced или Java SE Suite. Информацию об этих коммерческих продуктах см. в документе Java SE Advanced и Java SE Suite.
    • Программа удаления Java встроена в программу установки. С ее помощью вы сможете удалить старые версии Java из системы. Данное изменение применимо к 32- и 64-разрядным платформам Windows. См. Удаление JRE.
  • Изменения в Java Control Panel
    • На вкладке Update (Обновление) панели управления Java Control Panel теперь можно задать автоматическое обновление 64-разрядных JRE (в дополнение к 32-разрядным версиям), установленных в системе.
    • Уровень безопасности Medium (Умеренный) удален. Теперь доступны только уровни High (Высокий) и Very High (Очень высокий). Выполнение апплетов, не соответствующих новейшим требованиям безопасности, можно разрешить, добавив соответствующие сайты в список сайтов-исключений. Список сайтов-исключений позволяет пользователю разрешить выполнение тех же апплетов, которые доступны на уровне Medium (Умеренный). В этом случае разрешение на выполнение апплетов настраивается отдельно для каждого сайта, что снижает риск использования более низких уровней защиты.
  • Обновлен Java Compiler.
    Компилятор javac обновлен, теперь в нем реализован анализ определенного назначения для доступа к последнему пустому полю с помощью "this". Подробности см. в документе Руководство по совместимости JDK 8.
  • Изменения к минимальной требуемой версии Java для Java Plugin и Java Webstart
    Теперь минимальная требуемая версия Java для Java Plugin и Java Webstart: Java 5. Апплеты, которые не выполняются в Java 5 и более поздних версиях, необходимо перевести на более позднюю версию Java. Апплеты, которые написаны для более ранних версий, но могут выполняться по крайней мере в Java 5, продолжат функционировать.
  • Изменение в форматировании выходных данных UsageTracker
    . Теперь в форматировании выходных данных UsageTracker используются кавычки, это позволяет избежать путаницы в журнале. Это может потребовать изменения способа чтения данной информации. Можно задать для этой функции настройки предыдущей версии, хотя рекомендуется все же использовать новый формат. См. документацию к Java Usage Tracker.
  • Изменения в Java Packaging Tools
    • Инструмент javafxpackager переименован в javapackager
    • В команду развертывания javapackager добавлен параметр "-B". Он позволяет передавать аргументы в средства создания пакетов, которые используются для создания автономных приложений. Дополнительную информацию см. в документации к javapackager (Windows)/(Unix)
    • В JavaFX Ant Task Reference добавлен аргумент параметра средства помощи . Он позволяет указать аргумент (в элементе ) для средства создания пакетов, который используется для создания автономных приложений.
Дата окончания срока действия Java

Срок действия версии 8u20: 14 октября 2014 г. Срок действия Java истекает при появлении нового выпуска с исправлениями уязвимостей системы безопасности. Для систем, которым невозможно подключиться к серверам Oracle, истечение срока действия JRE (версия 8u20) 14 ноября 2014 года обеспечивается вспомогательным механизмом. При выполнении любого из условий (становится доступным новый выпуск или истекает срок действия) Java предоставляет пользователям дополнительные предупреждения и напоминания о необходимости обновления до более новой версии.

Исправление ошибок предыдущих выпусков

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u20.

» Примечание к выпуску 8u20


Java 8 (обновление 11) (8u11)

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u11.

» Примечание к выпуску 8u11


Java 8 (обновление 5) (8u5)

Данный выпуск содержит исправления для устранения уязвимостей системы безопасности. Дополнительные сведения см. в информационном бюллетене о критическом обновлении Oracle.

Список ошибок, исправленных в этом выпуске, см. на странице Исправление ошибок JDK 8u5.

» Примечание к выпуску 8u5


Выпуск Java 8

» Примечания к выпуску JDK и JRE 8


Дополнительные ресурсы:




Выбрать язык | О Java | Поддержка | Разработчики | Заявление об ограничении ответственности
Конфиденциальность  | Условия использования | Товарные знаки

Oracle