JDK11删除功能和选项

简介: 删除功能和选项本节介绍在Java SE 11和JDK11中删除的API,功能和选项。此处描述的API是随Oracle JDK提供的API。 它包括Java SE 11平台的完整实现和其他Java API,以支持Java应用程序的开发,调试和监视。

删除功能和选项

本节介绍在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。

相关文章
|
11天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
74 34
|
1月前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
119 60
|
1月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
30 2
|
2月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
67 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
2月前
|
Java 程序员
在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。
【10月更文挑战第13天】在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。本文介绍了Java关键字的基本概念及其重要性,并通过定义类和对象、控制流程、访问修饰符等示例,展示了关键字的实际应用。掌握这些关键字,是成为优秀Java程序员的基础。
28 3
|
2月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
151 1
|
2月前
|
机器学习/深度学习 算法 Java
通过 Java Vector API 利用 SIMD 的强大功能
通过 Java Vector API 利用 SIMD 的强大功能
59 10
|
2月前
|
Oracle 安全 Java
Java 22 为开发人员带来了重大增强功能
Java 22 为开发人员带来了重大增强功能
47 9
|
2月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
30 1
|
4月前
|
Java 开发者
Java多线程教程:使用ReentrantLock实现高级锁功能
Java多线程教程:使用ReentrantLock实现高级锁功能
48 1
下一篇
DataWorks