Java平台,标准版Oracle JDK 9中的新功能


声明:本文转载自https://my.oschina.net/gemron/blog/1541837,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

Java平台,标准版

Oracle JDK 9中的新增功能

版本9

E77563-05

2017年9月

 

JDK 9中的新功能概述

Java Platform,Standard Edition 9是一个主要的功能版本。以下总结了Java SE 9和JDK 9,Oracle Java SE 9实现中的功能和增强功能。

JDK增强提案(JEP)是对JDK设计和实施非常重要的更改的提案。参见JEP 1:JDK增强提案和路线图流程。Java规范请求(JSR)描述了Java平台的建议和最终规范。请参见JSR概述

 

JDK 9中的重要变化

这些变化影响了多个技术领域。

特征 描述
Java平台模块系统 推出了一种新的Java编程组件,该模块是一个命名的,自描述的代码和数据集合。该模块系统:
  • 引入一个新的可选阶段,链接时间,它是编译时间和运行时间之间,在此期间,可以将一组模块组合和优化到自定义运行时映像中; 看到jlink在工具Java平台,标准版工具参考。
  • 添加选项到工具javacjlink以及java在哪里可以指定模块路径,定位模块的定义。
  • 引入模块化JAR文件,它是一个JAR文件,其module-info.class文件位于根目录下。
  • 推出JMOD格式,它是一种类似于JAR的打包格式,除了可以包括本机代码和配置文件; 看到这个jmod工具。

JDK本身已经被分为一组模块。这个变化:

  • 使您可以将JDK的模块组合到各种配置中,包括:

    • 对应于JRE和JDK的配置。
    • 在Java SE 8中定义的每个紧凑型配置文件的内容大致相同的配置
    • 只包含一组指定的模块及其所需模块的自定义配置。
  • 重新组织JDK和JRE运行时映像以适应模块,并提高性能,安全性和可维护性。

  • 定义用于命名模块,类和存储在运行时映像中的资源的新URI方案,而不会显示图像的内部结构或格式。

  • 删除经认可的标准覆盖机制和扩展机制。

  • 删除rt.jartools.jarJava运行时图像。

  • 使大多数JDK的内部API默认无法访问,但留下一些关键的,广泛使用的内部API可访问,直到所有或大部分功能都支持替换。

    运行该命令jdeps -jdkinternals以确定您的代码是否使用内部JDK API。

有关详细信息,请参阅以下内容:

JEP 223:新的版本串方案

提供简化的版本字符串格式,有助于清楚区分主要,次要,安全和补丁更新版本。

新版本的字符串格式如下:

$MAJOR.$MINOR.$SECURITY.$PATCH
  • $MAJOR是主要版本增加的版本号,例如JDK 9,其中包含由Java SE平台规范指定的重要新功能。主要版本包含新功能和对现有功能的更改,这些功能将提前计划和公布。

  • $MINOR 是为每个次要更新增加的版本号,例如错误修复,标准API的修订,或相关平台规范范围之外的功能实现。

  • $SECURITY 是针对安全更新版本增加的版本号,其中包含关键修复程序,包括提高安全性所需的修补程序。

  • $PATCH 是包含已经一起测试的安全性和高优先级客户修补程序的版本的版本号。

新版本字符串格式的Java平台,标准版安装指南。

 

JDK 9安装程序的新功能

JDK 9包括Microsoft Windows和MacOS平台的安装程序增强功能。

Microsoft Windows的安装程序增强功能

特征 描述

使用安装程序的用户界面启用或禁用Web部署

提供在安装程序的“ 欢迎”页面中启用或禁用Web部署的选项。要启用Web部署,请在“ 欢迎”页面中选择“ 自定义安装”,单击“ 安装”,然后选中“ 在浏览器中启用Java内容”复选框。

macOS的安装程序增强功能

特征 描述

CPU版本可用性

在卸载当前CPU版本后,提供关于下一个CPU可用性的通知。

用户体验

更新JRE时增强用户体验。

 

JDK 9中的工具的新功能

这些是JDK 9中的工具增强功能。

特征 描述
JEP 222:jshell:Java Shell(Read-Eval-Print Loop)

将读评估打印循环(REPL)功能添加到Java平台。

jshell工具提供了一个交互式命令行界面,用于评估Java编程语言的声明,语句和表达式。它有助于原型设计和探索编码选项,具有即时的结果和反馈。直接的反馈结合开始表达的能力对于教育是有用的 - 无论是学习Java语言还是只学习新的API或语言功能。

jshell在Java平台,标准版工具参考,并介绍JShell在Java平台,标准版的Java壳牌用户指南。

JShell API使应用程序能够利用REPL功能。请参阅jdk.jshell包。

JEP 228:添加更多诊断命令

定义其他诊断命令,以提高诊断热点和JDK问题的能力。

jcmd在Java平台,标准版工具参考。

JEP 231:删除启动时JRE版本选择

删除请求JRE版本的能力,该版本不是在启动时启动的JRE。

现代应用程序通常通过Java Web Start(使用JNLP文件),本机OS打包系统或活动安装程序进行部署。这些技术有自己的方法来管理根据需要查找或下载和更新所需的JRE所需的JRE。这使得启动时间JRE版本选择过时。

JEP 238:多版本JAR文件

扩展JAR文件格式,以便在单个存档中共享多个Java版本的类文件。

多版本JAR(MRJAR)包含针对特定Java平台版本的类和资源的附加版本目录。使用jar工具--release选项指定版本化目录。

JEP 240:删除JVM TI hprof代理

hprof从JDK中删除代理。该hprof剂被写为JVM工具界面演示代码,而不是旨在成为一种生产工具。

hprof代理商的有用功能已被更好的替代品所取代。

注意:

hprof代理已被删除时,仍然可以hprof使用jmap或其他诊断工具的格式创建堆转储。见诊断工具在Java平台,标准版故障排除指南。

JEP 241:删除jhat工具

jhat从JDK中删除该工具。

jhat工具是JDK 6中添加的实验性和不受支持的工具。它已经过时了。高级堆可视化和分析仪已有多年可用。

JEP 245:验证JVM命令行标志参数

验证所有数值JVM命令行标志的参数以避免出现故障,如果发现它们无效,则会显示相应的错误消息。

已经为需要用户指定数值的参数实现了范围和可选约束检查。

在Java平台标准版工具参考中查看java验证Java虚拟机标志参数

JEP 247:编译旧版平台版本

增强,javac以便它可以编译Java程序以在所选的早期版本的平台上运行。

使用-source-target选项时,编译的程序可能会意外地使用给定目标平台不支持的API。该--release选项将防止意外使用API​​。

javac在Java平台,标准版工具参考。

JEP 282:jlink:Java连接器

组合并优化一组模块及其依赖关系到JEP 220中定义的自定义运行时映像。

jlink工具在组装过程中定义了用于转换和优化的插件机制,以及用于生成替代图像格式。它可以创建为单个程序优化的自定义运行时。JEP 261将链接时间定义为编译时间和运行时间之间的可选阶段。链接时间需要一个链接工具来组合和优化一组模块及其传递依赖关系以创建运行时映像或可执行文件。

jlink在Java平台,标准版工具参考。

 

JDK 9中的安全性新增功能

这些是JDK 9中的安全增强功能。

特征 描述
JEP 219:数据报传输层安全(DTLS)

启用Java安全套接字扩展(JSSE)API和SunJSSE安全提供程序以支持DTLS版本1.0DTLS版本1.2协议。

数据报传输层安全(DTLS)在Java平台,标准版安全开发人员指南。

JEP 244:TLS应用层协议协商扩展

使传输层安全(TLS)连接中的客户端和服务器协商要使用的应用协议。使用应用层协议协商(ALPN),客户端将作为TLS ClientHello消息的一部分发送支持的应用协议列表。服务器选择协议,并将所选协议作为TLS ServerHello消息的一部分返回。应用协议协商可以在TLS握手中完成,而不需要添加网络往返。

TLS握手和应用层协议协商的Java平台,标准版安全开发人员指南。

JEP 249:用于TLS的OCSP装订

启用TLS连接中的服务器以检查撤销的X.509证书撤销。服务器在TLS握手期间通过联系有关证书的在线证书状态协议(OCSP)响应者来执行此操作。然后,它将撤销信息附加或“订购”到其返回给客户端的证书,以便客户端可以采取适当的措施。

使客户端能够从TLS服务器请求OCSP装订。客户端检查来自支持该功能的服务器的装订响应。

OCSP装订在Java平台,标准版安全开发人员指南。

JEP 246:利用GHASH和RSA的CPU指令

AES/GCM/NoPadding使用GHASH HotSpot内在函数提高性能,范围从34x到150x 。PCLMULQDQ英特尔x64 CPU上的xmul/xmulhi指令和SPARC 上的说明加速了GHASH内在函数。

使用RSA HotSpot内在函数提高性能高达50%的方法BigInteger squareToLenBigInteger mulAdd方法。RSA内在函数适用java.math.BigInteger于Intel x64上的类。

jdk.security.provider.preferred引入了新的安全属性来配置提供特定算法提供显着性能提升的提供商。

请参阅在Java平台,标准版安全开发人员指南中配置特定算法的首选提供程序

JEP 273:基于DRBG的SecureRandom实现

提供API 中NIST SP 800-90Ar1中规定的确定性随机位发生器(DRBG)机制的SecureRandom功能。

DRBG机制使用与SHA-512和AES-256一样强大的现代算法。这些机制中的每一个都可以配置不同的安全强度和功能,以匹配用户需求。

请参阅在Java平台生成随机数字,标准版安全开发人员指南。

JEP 288:禁用SHA-1证书

通过提供更灵活的机制,通过基于SHA-1的签名来禁用X.509证书链来改进JDK的安全配置。

禁用在默认情况下包含在JDK中的由根链接的TLS服务器证书链中的SHA-1; 本地或企业认证机构(CA)不受影响。

jdk.certpath.disabledAlgorithms安全性能与几个新的约束,允许在可禁用的证书类型更大的控制增强。

JEP 288

JEP 229:默认创建PKCS12密钥库

将默认密钥库类型从JKS修改为PKCS12。PKCS#12是一种可扩展,标准和广泛支持的存储加密密钥的格式。PKCS12密钥库通过存储私钥,可信公钥证书和密钥来提高机密性。此功能还为与其他系统(如Mozilla,Microsoft的Internet Explorer和支持PKCS12的OpenSSL)的互操作性打开了机会。

SunJSSE提供商提供java.security.KeyStore用于读取和写入PKCS12文件的PKCS12 格式的完整实现。

密钥管理的Java平台,标准版安全开发人员指南。

keytool密钥和证书管理实用程序可以创建PKCS12密钥库。

请参阅创建密钥库在Java平台,标准版安全开发人员指南和keytool在Java平台,标准版工具参考。

JEP 287:SHA-3哈希算法

支持NIST FIPS 202中指定的SHA-3加密散列函数。

java.security.MessageDigestAPI 支持以下附加标准算法:SHA3-224,SHA3-256,SHA3-384和SHA3-512。

以下提供商支持SHA-3算法增强功能:

  • SUN提供商:SHA3-224,SHA3-256,SHA3-384和SHA3-512

  • OracleUcrypto提供程序:Solaris 12.0支持的SHA-3摘要

 

JDK 9中部署的新功能

这些是JDK 9中的部署增强功能。

特征 描述
不推荐使用Java插件

在Oracle JDK 9版本中弃用Java插件和关联的小应用程序技术。在JDK 9中仍然可用,这些技术将被考虑在将来的版本中从Oracle JDK和JRE中删除。

嵌入在网页中的Applet和JavaFX应用程序需要Java插件才能运行。考虑将这些类型的应用程序重新编写为Java Web Start或自包含的应用程序。

请参阅在Java平台标准版部署指南中将Java Applet迁移到Java Web Start和JNLP自包含应用程序打包

增强的Java控制面板

改进Java控制面板中选项的分组和显示。信息更容易找到,搜索字段可用,并且模式对话框不再使用。请注意,某些选项的位置已从先前版本的Java控制面板更改。

参见Java控制面板的Java平台,标准版部署指南。

JEP 275:模块化Java应用程序打包

将Project Jigsaw的功能集成到Java Packager中,包括模块感知和自定义运行时创建。

利用该jlink工具创建更小的包装。

创建仅使用JDK 9运行时的应用程序。不能用于使用早期版本的JRE来打包应用程序。

JRE的定制打包的模块化应用在Java平台,标准版部署指南。

JEP 289:弃用Applet API

弃用Applet API,因为Web浏览器供应商删除对Java浏览器插件的支持,这一点越来越不太有用。在JDK 9中仍然可用,Applet类将在以后的版本中被考虑删除。考虑将applet重写为Java Web Start或自包含的应用程序。

请参阅在Java平台标准版部署指南中将Java Applet迁移到Java Web Start和JNLP自包含应用程序打包

 

JDK 9中Java语言的新特性

Java SE 9中包含了一些非常小的语言更改。

特征 描述
JEP 213:铣削项目硬币

标识一些小的变化:

  • 允许@SafeVargs私有实例方法。

  • 允许有效地将最终变量用作try-with-resources语句中的资源。

  • 如果推断类型的参数类型是可表示的,则允许具有匿名类的菱形。

  • 完成从Java SE 8开始的从法定标识符名称集合中下划线的删除。

  • 添加对私有接口方法的支持。

Java语言更改为Java SE 9在Java平台,标准版的Java语言的更新。

 

JDK 9中Javadoc的新功能

Javadoc增强功能包括以下内容:简化的Doclet API,Javadoc搜索,支持生成HTML5输出以及支持模块系统中的文档注释。

特征 描述
JEP 221:简化的Doclet API

用新的简化API替代旧的Doclet API,利用其他标准的现有API。标准doclet已被重写,以使用新的Doclet API

注意:

现有的API和旧的标准doclet可用,但尚未更新以支持新的语言功能,如模块。
JEP 224:HTML5 Javadoc

支持生成HTML5输出。要获得完全兼容的HTML5输出,请确保文档注释中提供的任何HTML内容都符合HTML5。

JEP 225:Javadoc Search

为生成的API文档提供搜索框。使用此搜索框查找文档中的程序元素,标记的单词和短语。

JEP 261:模块系统

支持模块声明中的文档注释。包括新的命令行选项来配置要记录的模块集,并为任何正在记录的模块生成新的摘要页面。

 

JDK 9中JVM的新特性

这些是JDK 9中的JVM增强功能。

特征 描述
JEP 165:编译器控制

提供通过编译器指令选项控制JVM编译的方法。控制级别是运行时可管理的和方法特定的。编译器控件取代了CompileCommand并向后兼容。

编译器控制的Java平台,标准版Java虚拟机向导。

JEP 197:分段代码缓存

将代码高速缓存分成不同的段,每个段都包含特定类型的编译代码,以提高性能并启用未来的扩展。

java在Java平台,标准版工具参考。

JEP 276:语言定义对象模型的动态链接

在运行时动态链接高级对象操作,例如读取属性,编写属性和调用函数到相应的目标方法句柄。它根据传递的值的实际类型将这些操作链接到目标方法句柄。这些对象操作表示为invokedynamicsites。

虽然java.lang.invoke提供了一个用于动态链接invokedynamic调用站点的低级API ,但它并没有提供一种方法来表达对象的更高级别操作,也不提供实现它们的方法。

使用包jdk.dynalink,您可以实现其表达式包含动态类型(无法静态确定的类型)的编程语言,并将这些动态类型的操作表示为invokedynamic调用站点(因为语言的对象模型或类型系统不会紧密匹配JVM)。

 

JDK 9中JVM调优的新功能

这些是JDK 9中的JVM调优增强功能。

特征 描述
提高G1的可用性,确定性和性能

增强垃圾回收(G1)垃圾收集器,自动确定几个重要的内存回收设置。以前,必须手动设置这些设置才能获得最佳结果。此外,还解决了G1垃圾收集器的可用性,确定性和性能问题。

JEP 158:统一JVM记录

为JVM的所有组件引入通用日志记录系统。

请参阅Java Platform,Standard Edition Tools Reference中的-Xloggc java选项。

JEP 214:删除JDK 8中不推荐使用的GC组合

删除在JDK 8中不推荐使用的垃圾收集器(GC)组合。

这意味着以下GC组合不再存在:

  • DefNew + CMS

  • ParNew + SerialOld

  • 增量CMS

同时标记扫描(CMS)的“前景”模式也已被删除。以下命令行标志已被删除:

  • -Xincgc
  • -XX:+CMSIncrementalMode
  • -XX:+UseCMSCompactAtFullCollection
  • -XX:+CMSFullGCsBeforeCompaction
  • -XX:+UseCMSCollectionPassing

命令行标志-XX:+UseParNewGC不再有效果。ParNew只能与CMS一起使用,CMS需要ParNew。因此,该-XX:+UseParNewGC标志已被弃用,将来可能会被删除。

JEP 248:使G1成为默认垃圾收集器

在第32和64位服务器配置上,首先使用垃圾回收(G1)默认垃圾收集器(GC)。使用诸如G1之类的低暂停收集器为大多数用户提供比面向吞吐量的收集器(例如以前是默认值的Parallel GC)更好的整体体验。

垃圾首先垃圾收集器在Java平台,标准版的HotSpot虚拟机垃圾收集调优指南
JEP 271:统一GC记录

使用JEP 158中引入的统一JVM日志记录框架对垃圾收集(GC)进行日志记录。GC记录以与当前GC记录格式一致的方式重新实现; 然而,新旧格式之间存在一些差异。

请参阅使用JVM统一日志记录框架在Java平台,标准版工具参考中启用日志记录

JEP 291:弃用并发标记扫描(CMS)垃圾收集器

不推荐使用并发标记扫描(CMS)垃圾回收器。使用该-XX:+UseConcMarkSweepGC选项在命令行上请求时发出警告消息。垃圾回收(G1)垃圾收集器旨在替代大多数CMS使用。

 

JDK 9中核心库的新功能

特征 描述
JEP 102:进程API更新

改进用于控制和管理操作系统进程的API。

所述ProcessHandle类提供的过程的本机过程ID,自变量,命令,开始时间,累积CPU时间,用户,父进程,和后代。该类还可以监视进程的活动并销毁进程。使用ProcessHandle.onExit方法,CompletableFuture类的异步机制可以在进程退出时执行一个操作。

进程API的Java平台,标准版Java的核心库开发指南,java.lang.Process中,和java.lang.ProcessHandle

JEP 193:可变手柄

定义一个标准的方法来调用对象字段和数组元素上的java.util.concurrent.atomic和sun.misc.Unsafe操作的等价物。

定义一组标准的围栏操作,由VarHandle静态方法组成,可以对内存排序进行细粒度的控制。这是sun.misc.Unsafe的替代方法,它提供了一组非标准的围栏操作。

定义标准可达性围栏操作,以确保引用的对象保持强力可访问。

JEP 254:紧凑型串

对字符串采用更节省空间的内部表示。以前,String类在char数组中存储字符,每个字符使用两个字节(16位)。String类的新内部表示是一个字节数组加上一个编码标志字段。

这完全是一种实现变更,而不改变现有的公共接口。

请参阅Java Platform,Standard Edition Tools ReferenceCompactStrings中的java命令选项。

JEP 264:平台日志API和服务

定义平台类可用于记录消息的最小记录API,以及消息者的服务接口。库或应用程序可以提供此服务的实现,将平台日志消息路由到其选择的日志记录框架。如果没有提供实现,则使用基于java.util.logging API 的默认实现。

JEP 266:更多并发更新

JEP 155中的JDK 8中引入的并发更新进一步并发更新:并发更新,包括可互操作的发布 - 订阅框架和对CompletableFuture API的增强。

JEP 268:XML目录

添加标准XML目录API,该API支持结构化信息标准(OASIS)XML目录1.1版标准的组织。API定义了目录和目录解析器抽象,可以用作内部或外部解析器,JAXP处理器可以接受解析器。

使用内部目录API的现有库或应用程序将需要迁移到新的API以利用新功能。

XML目录API的Java平台,标准版Java的核心库开发人员指南。

JEP 269:集合的便利工厂方法

使用少量元素创建集合和映射的实例更容易。对于List,,SetMap接口,新的静态工厂方法使得创建这些集合的不可变实例变得更为简单。

例如:
Set<String> alphabet = Set.of(“a”,“b”,“c”);

请参阅在Java平台“标准版Java核心库开发人员指南”中创建不可变的列表,集合和映射。有关API文档,请参阅不可变静态工厂方法不可变图静态工厂方法不可变列表静态工厂方法

JEP 274:增强方法句柄

增强java.lang.invoke包的MethodHandle,MethodHandles和MethodHandles.Lookup类,以简化常见的用例并实现更好的编译器优化。

补充包括:
  • 在java.lang.invoke包中的MethodHandles类中,为循环和try / finally块提供新的MethodHandle组合器。

  • 使用新的MethodHandle组合器来增强MethodHandle和MethodHandles类的参数处理。

  • 在MethodHandles.Lookup类中实现接口方法和可选的超级构造函数的新查找。

JEP 277:增强弃用 修改@Deprecated注释,以提供有关规范中API的状态和预期配置的更好信息。增加了两个新元素:
  • @Deprecated(forRemoval = true)表示将在Java SE平台的将来版本中删除该API。

  • @Deprecated(since =“version”)包含Java SE版本字符串,用于指示何时不推荐使用API​​元素,这些字符串在Java SE 9及更高版本中已被弃用。

例如:@Deprecated(since =“9”,forRemoval = true)

@核心平台中的已删除注释已更新。

您可以使用新工具jdeprscan来扫描类库(JAR文件),以使用已弃用的JDK API元素。

增强弃用的Java平台,标准版Java的核心库开发人员指南。

jdperscan在Java平台,标准版工具参考。

JEP 285:旋转等待提示

定义一个API,使Java代码能够提示自旋循环正在执行。旋转循环重复检查条件是否为真,例如可以获取锁定,之后可以安全地执行一些计算,然后释放锁定。这个API纯粹是一个提示,并且没有语义行为的要求。看到Thread.onSpinWait的方法。

JEP 290:过滤进入的序列化数据

允许对对象序列化数据的传入流进行过滤,以提高安全性和鲁棒性。对象序列化客户端可以更容易地验证其输入,并且导出的远程方法调用(RMI)对象也可以更容易地验证调用参数。

序列化客户端实现在ObjectInputStream上设置的过滤器接口。对于RMI,通过RemoteServerRef导出对象,该RemoteServerRef将MarshalInputStream上的过滤器设置为在未调用时验证调用参数。

JEP 259:Stack-Walking API

提供了一个堆栈行走API,允许轻松过滤和懒惰地访问堆栈跟踪中的信息。

该API支持两个短步,停止在与给定条件匹配的框架上,以及遍历整个堆栈的漫步。在符合给定标准的帧上停止,如果调用者只对堆栈中的顶部帧感兴趣,则避免检查所有帧的成本。当堆栈步行器配置为这样做时,API可以访问Class对象。请参阅java.lang.Stackwalker类。

JEP 255:合并所选Xerces 2.11.0更新到JAXP

更新JDK以支持2.11.0版本的Xerces解析器。公共JAXP API没有变化。

更改在Xerces 2.11.0的以下类别中:数据类型,DOM L3序列化程序,XPointer,目录解析器和XML模式验证(包括错误修复,但不是XML模式1.1开发代码)。

 

Nashorn在JDK 9中的新功能

这些是JDK 9中的Nashorn增强功能。

特征 描述
JEP 236:Nashorn的解析器API

使应用程序,特别是IDE和服务器端框架能够解析和分析ECMAScript代码。

使用Parser类中的方法从字符串,URL或文件解析ECMAScript代码。这些方法返回一个CompilationUnitTree的实例,它表示ECMAScript代码作为抽象语法树。

jdk.nashorn.api.tree包含Nashorn解析器API。

JEP 292:在Nashorn中实现所选的ECMAScript 6功能 实现了第六版ECMA-262(也称为ECMAScript 6)或简称ES6 引入的许多新功能。实施的功能包括:
  • 模板字符串
  • letconst和块范围
  • 迭代器和for..of循环
  • 地图,集合,WeakMap和WeakSet
  • 符号
  • 二进制和八进制文字

 

JDK 9中客户端技术的新功能

这些是JDK 9中的客户端技术增强功能。

特征 描述
JEP 251:多分辨率图像

使一组具有不同分辨率的图像被封装到单个多分辨率图像中。这对应用程序来说适用于在运行时分辨率可能会从大约96dpi到300dpi变化的显示设备。

界面java.awt.image.MultiResolutionImage将一组具有不同分辨率的图像封装到单个多分辨率图像中,使应用程序能够轻松地操作和显示具有分辨率变体的图像。

JEP 253:准备用于模块化的JavaFX UI控件和CSS API

为JavaFX UI控件和CSS功能提供公共API,以前只能通过内部软件包提供,但由于模块化而无法访问。

新包javafx.scene.control.skin由一组类提供每个UI控件的皮肤(或外观)的默认实现。

新类CssParser是一个返回一个Stylesheet对象的CSS解析器,它可以更好地控制应用程序的CSS样式。它是CSS API(javafx.css包)的一部分。CSS API包括新的支持类,包括解析器使用的一组标准转换器; 看javafx.css.converter包装

JEP 256:BeanInfo注释

@beaninfo使用注释类型JavaBeanBeanPropertySwingContainer替换Javadoc标记。

这些注释类型在运行时在BeanInfo生成期间设置相应的特征属性。因此,您可以更容易地直接在Bean类中指定这些属性,而不是为每个Bean类创建一个单独的BeanInfo类。它还可以删除自动生成的类,这使得更容易模块化客户端库。

JEP 262:TIFF图像I / O

将标签图像文件格式(TIFF)作为标准读取和写入添加到javax.imageio包中。新包javax.imageio.plugins.tiff提供了简化TIFF元数据可选操作的类。

JEP 263:Windows和Linux上的HiDPI Graphics

在Windows和Linux上自动缩放和调整AWT和Swing组件,以实现高位数/英寸(HiDPI)显示。

JDK已经在OS X上支持HiDPI“视网膜显示”。

在此版本之前,在Windows和Linux上,Java应用程序基于像素进行了大小和渲染,即使在可以具有传统显示器的二至三倍像素密度的HiDPI显示器上也是如此。这导致GUI组件和窗口太小,无法读取或使用。

JEP 272:平台特定的桌面功能

向类java.awt.Desktop添加其他方法,使您能够与桌面交互,包括以下内容:

  • 显示自定义关于和首选项窗口。

  • 处理打开或打印文件列表的请求。

  • 处理打开URL的请求。

  • 打开本机帮助查看器应用程序。

  • 设置默认菜单栏。

  • 启用或禁用应用程序突然终止。

这些新方法替代了包含在OS X软件包com.apple.eawt中的内部API的功能,它们在JDK 9中默认不可访问。请注意,软件包com.apple.eio不再可访问。

JEP 283:在Linux上启用GTK 3

启用Java图形应用程序,无论是基于JavaFX,Swing还是抽象窗口工具包(AWT),都可以在Linux或Solaris上使用GTK +版本2或版本3。

默认情况下,Linux或Solaris上的JDK使用GTK + 2(如果可用)如果没有,它使用GTK + 3。

要使用特定版本的GTK +,请设置系统属性jdk.gtk.version。此系统属性的值可能为2,2.2或3.您必须在应用程序加载GTK +之前设置此属性,并且不得与较早由另一个工具包加载的GTK +版本冲突。

 

JDK 9中的国际化新进展

这些是JDK 9中的国际化增强。

特征 描述
JEP 267:Unicode 8.0

支持Unicode 8.0。JDK 8支持Unicode 6.2。

Unicode的6.37.0和8.0标准相结合引入10555个字符,29个脚本,和42块,所有这些在JDK 9支撑。

JEP 252:默认情况下启用CLDR区域设置数据

使用首先在JDK 8中添加的公共区域设置数据存储库(CLDR)基于XML的区域设置数据作为JDK 9中的默认语言环境数据。在以前的版本中,默认值为JRE。

要启用与JDK 8兼容的行为,请将系统属性设置为超前的java.locale.providers值。COMPATCLDR

CLDR语言环境数据通过默认启用的Java平台,标准版国际指南。

JEP 226:UTF-8属性文件

以UTF-8编码加载属性文件。在以前的版本中,加载属性资源束时使用了ISO-8859-1编码。UTF-8是一种非常方便的表示非拉丁字符的方法。

大多数现有的属性文件不应受到影响。

UTF-8属性文件中的Java平台,标准版国际指南。

 

文档辅助功能

有关Oracle对可访问性的承诺的信息,请访问Oracle辅助功能计划网站:http://www.oracle.com/pls/topic/lookup ? ctx=acc& id=docacc

访问Oracle支持

购买支持的Oracle客户可以通过My Oracle Support获得电子支持。有关信息,请访问http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info或访问http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs如果您听力障碍者

本文发表于2017年09月22日 16:37
(c)注:本文转载自https://my.oschina.net/gemron/blog/1541837,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2163 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1