IT之家讯 Oracle甲骨文公司今天发布了Java 8 Update 60(JDK 8u60)更新下载。该版本针对Nashorn增强功能对文档进行了更新,对部署规则集v1.2进行了更改,共有6项主要修复以及大量其他问题修复。8u60的到期日期为2015年10月20日。只要具有安全漏洞修复的新发行版可用,Java就会到期。对于无法访问Oracle服务器的系统,辅助机制将使此JRE(版本8u60)于2015年11月20日到期。满足两个条件中的任何一个(新发行版可用或到达到期日期)后,Java将向用户提供其他警告和提醒以更新到较新版本。
Java 8 Update 60 (8u60)发行要点说明
• IANA Data 2015e
JDK 8u60包含IANA时区数据版本2015e。
• Bug修复:dns_lookup_realm默认情况下应为false
Kerberos krb5.conf 文件中的dns_lookup_realm设置默认情况下为 false。
• Bug修复:禁用RC4密码套件
基于RC4的TLS密码套件(例如TLS_RSA_WITH_RC4_128_SHA)现在被视为有漏洞,不再使用(请参阅RFC 7465)。相应地,默认情况下,在Oracle JSSE实现中通过将"RC4"添加到"jdk.tls.disabledAlgorithms"安全属性,并将其从默认启用的密码套件列表中删除,已停用了基于RC4的TLS密码套件。通过从 java.security 文件包含的"jdk.tls.disabledAlgorithms"安全属性中删除"RC4",或者动态调用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
即使从命令行设置了此选项,仍必须使用 SSLSocket/SSLEngine.setEnabledCipherSuites()方法向启用的密码套件列表重新添加基于RC4的密码套件。
• Bug修复:支持JKS和PKCS12密钥库的密钥库类型检测
密钥库兼容性模式:为了提升互操作性,Java密钥库类型JKS现在默认支持密钥库兼容性模式。此模式使得JKS密钥库可以访问JKS和PKCS12文件格式。要禁用密钥库兼容性模式,请将安全属性keystore.type.compat 设置为字符串值 false。
• Bug修复:JDK 8u发行版中不安全的监视方法已过时
sun.misc.Unsafe 上的方法 monitorEnter、monitorExit 和 tryMonitorEnter 在JDK 8u60中被标记为已过时,将在以后的发行版中删除。这些方法不在JDK自身内部使用,也极少在JDK之外使用。
• Bug修复:使用SA从核心文件提取JFR记录
DumpJFR是基于可服务性代理的工具,可用于从核心文件和实时Hotspot进程提取Java飞行记录器(JFR)数据。可以通过以下方法使用DumpJFR:DumpJFR工具可将JFR数据转储到当前工作文件夹中名为recording.jfr的文件。
- 将DumpJFR附加到实时进程:
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.tools.DumpJFR
- 将DumpJFR附加到核心文件:
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.tools.DumpJFR
• Bug修复:名为"enum"的本地变量导致虚假的编译器崩溃
javac 语法分析器未正确对名为"enum"的本地变量进行语法分析;当程序包含此类本地变量时,如果在编译过程中使用的"source"标记对应于不支持枚举构造的发行版(例如"-source 1.4"),则会产生虚假的失败。
用于ARM的Java开发工具包发行版8u60
此发行版包含用于ARM的Java开发工具包发行版8u60(用于ARM的JDK 8u60)。
限制:本机内存跟踪支持仅限于用于ARM的JDK。ARM目标不支持Java命令行选项XX:NativeMemoryTracking=detail(会向用户显示一条错误消息)。请改为使用以下选项:
XX:NativeMemoryTracking=summary
针对Nashorn增强功能对文档进行了更新
JDK 8u60包括针对Nashorn的全新增强功能。因此,应该随最新Nashorn文档一起阅读以下文档更改:
• 补充:在以前的章节中,我们提到了每个JavaScript对象在公开到Java API时会实现java.util.Map 接口。这甚至对于JavaScript数组也成立。但是,当Java代码预期的是通过JSON进行语法分析的对象时,这通常不是所需或预期的行为。对于处理通过JSON进行语法分析的对象的Java库,通常的预期是数组会公开 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.
本文来源:不详 作者:佚名