删除功能和选项
本节介绍在Java SE 11和JDK
11中删除的API,功能和选项。此处描述的API是随Oracle JDK提供的API。 它包括Java SE 11平台的完整实现和其他Java API,以支持Java应用程序的开发,调试和监视。 关于Java SE 11和JDK 11中的重要增强功能和新功能的另一个信息来源是Java SE 11(18.9)(JSR 384)平台规范,该规范记录了Java SE 10和Java SE 11之间对规范的更改。本文档 包括已删除的API的标识和此处未描述的功能。 下面的描述还可能标识迁移到JDK 11时可能遇到的潜在兼容性问题。有关在JDK 11中关闭的CSR列表,请参阅已批准用于JDK 11的CSR。
client-libs
删除com.sun.awt.AWTUtilities类
在JDK 10(JDK-8187253)中,不推荐使用com.sun.awt.AWTUtilities类,而forRemoval = true。此类在JDK中未使用,已在此版本中删除。
client-libs/2d
从Oracle JDK中删除Lucida字体
Oracle JDK不再提供任何字体,完全依赖于操作系统上安装的字体。
这意味着来自JDK的应用程序不再提供Bigelow&Holmes Lucida系列(Lucida Sans,Lucida Bright和Lucida打字机)中的字体。
如果应用程序依赖于JDK中提供的字体,则可能需要更新它们。
如果系统管理员正在运行依赖于JDK中提供的字体而不是系统字体包的Java服务器应用程序,则在安装系统字体包之前,应用程序可能无法运行。
client-libs/java.awt
删除appletviewer启动器
appletviewer工具在JDK
9中已弃用(请参阅JDK-8074165),并在此版本中已删除。
client-libs/javax.imageio
OracleJDK的javax.imageio
JPEG插件不再支持带alpha的图像
以前,Oracle JDK使用广泛使用的IJG JPEG库的专有扩展来提供可选的色彩空间支持。这用于支持PhotoYCC和具有读取和写入的alpha分量的图像。 Oracle JDK 11中已删除此可选支持。除非先前由早期版本的Oracle JDK编码,否则不可能以任何这些格式遇到编码的JPEG图像。但是,如果遇到它们,解码现在将失败并出现异常。使用Alpha通道编写图像也会失败,但会出现异常。最可能出现问题的方案是不知道他们依赖这种支持的应用程序。如果直接调用ImageWriter或使用Image I / O便捷方法,则可能会失败并出现异常。 write()方法现在将返回false,这意味着它不会写入图像。
精心编写的应用程序应检查这些方案,这将缓解这种情况。请注意,OpenJDK从未拥有此可选的专有支持。它总是失败并在这些场景中生成异常。
有关不再支持的内容的详细信息,请参阅Java Image I / O JPEG元数据规范中的可选颜色空间支持:https://docs.oracle.com/javase/10/docs/api/javax/imageio/metadata/doc-files/jpeg_metadata.html#color
core-libs
删除sun.misc.Unsafe.defineClass
sun.misc.Unsafe.defineClass类已被删除。 用户应该使用Java SE 9中添加的公共替换java.lang.invoke.MethodHandles.Lookup.defineClass。有关更多详细信息,请参阅Java文档:
https://docs.oracle.com/javase/9/docs/api/java/lang/invoke/MethodHandles.Lookup.html#defineClass-byte:A-
core-libs/java.lang
删除Thread.destroy()和Thread.stop(Throwable)方法
Thread.destroy()和Thread.stop(Throwable)方法已被删除。 它们已被弃用于多个Java SE版本。从未实现Thread.destroy()方法,并且自Java SE 8以来Thread.stop(Throwable)方法一直无法运行。没有代码应该依赖于这两种方法的行为; 但是,任何使用这些方法的代码都会导致编译错误。 缓解是从源代码中删除对这些方法的引用。 请注意,无参数方法Thread.stop()不受此更改的影响。
core-libs/java.nio
删除sun.nio.ch.disableSystemWideOverlappingFileLockCheck属性
属性sun.nio.ch.disableSystemWideOverlappingFileLockCheck已被删除。因此,也消除了与旧锁定方法的兼容性。
JDK 6引入了系统属性sun.nio.ch.disableSystemWideOverlappingFileLockCheck来控制文件锁定行为。具体来说,该属性用于启用对JVM范围文件锁定的抑制,并提供与JDK 1.4和JDK 5的兼容性。旧行为仅限于检查仅在通道实例上获得的锁,而不是在JVM范围内获取的锁,这就是实际指定。
核心库/ java.util中:I18N
删除sun.locale.formatasdefault属性
为了向后兼容性而在JDK 7中引入的系统属性sun.locale.formatasdefault已被删除。
core-svc/javax.management
删除JVM-MANAGEMENT-MIB.mib
已删除通过SNMP JVM-MANAGEMENT-MIB.mib进行JVM监视和管理的规范。 客户可以使用JMX来监视和管理正在运行的JVM,并访问标准的度量和操作集。
core-svc/tools
删除SNMP代理
jdk.snmp模块已被删除。
因此,使用-D选项或management.properties配置设置时,以下com.sun.management.snmp。*属性为no-op。
com.sun.management.snmp.port
com.sun.management.snmp.trap
com.sun.management.snmp.interface
com.sun.management.snmp.acl
com.sun.management.snmp.acl.file
deploy
删除Java部署技术
现已删除了在JDK 9中已弃用并标记为在JDK 10中删除的候选者的Java插件和Java WebStart技术。 请注意,用于配置部署技术的Java控制面板也已与共享系统JRE(但不是服务器JRE)和JRE自动更新机制一起删除。本白皮书中提供了更多详细信息。
Infrastructure
从Oracle JDK中删除JMC
JDK捆绑包中不再包含Java
Mission Control(JMC)。 独立版本的JMC与Oracle JDK 11和OpenJDK 11兼容,可单独下载。
javafx/other
从Oracle JDK中删除JavaFX
JavaFX模块已从JDK 11发行版中删除。这些模块包含在早期版本的Oracle JDK中,但不包含在OpenJDK版本中。 JavaFX模块将作为JDK之外的单独模块集提供。 有关更多详细信息,请参见本白皮书:http://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf
other-libs
JEP320删除Java EE和CORBA模块
从Java SE Platform和JDK中删除Java EE和CORBA模块。这些模块在Java SE 9中已被弃用,声明的意图是在将来的版本中删除它们(JEP 320)。
已从Java SE 11和JDK 11中删除以下模块:
java.xml.ws(JAX-WS,以及相关技术SAAJ和Web服务元数据)
java.xml.bind(JAXB)
java.activation(JAF)
java.xml.ws.annotation(Common Annotations)
java.corba(CORBA)
java.transaction(JTA)
java.se.ee(上面六个模块的聚合器模块)
jdk.xml.ws(JAX-WS工具)
jdk.xml.bind(JAXB工具)
将删除jdk.xml.ws模块中的以下JAX-WS工具:
WSGEN
的wsimport
将删除jdk.xml.bind模块中的以下JAXB工具:
schemagen
XJC
删除了java.corba模块中的以下CORBA工具:
IDLJ
ORBD
servertool
tnamesrv
更新了rmic编译器以删除-idl和-iiop选项。因此,RMI编译器将不再能够生成IDL或IIOP存根和绑定类。
此外,由于删除了Java EE和CORBA模块,以下系统属性不再适用:
com.sun.xml.internal.ws.client.ContentNegotiation
com.sun.xml.internal.ws.legacyWebMethod
javax.xml.bind.context.factory的
javax.xml.bind.JAXBContext
javax.xml.soap.MetaFactory
javax.xml.ws.spi.Provider
jaxb.fragment
jaxb.noNamespaceSchemaLocation
jaxb.schemaLocation
jaxb.formatted.output
jaxb.encoding
mail.mime.decodetext.strict
mail.mime.encodeeol.strict
mail.mime.foldencodedwords
mail.mime.foldtext
mail.mime.charset
saaj.mime.optimization
saaj.lazy.contentlength
saaj.lazy.contentlength
saaj.lazy.mime.optimization
有关拆卸和可能更换模块的更多详细信息,请参阅JEP 320。