JEP 289:弃用 Applet API
概述
弃用 Applet API,随着网页浏览器厂商移除对 Java 浏览器插件的支持,该 API 正迅速变得无关紧要。引导开发者转向其他技术,例如 Java Web Start 或可安装的应用程序。
动机
在 Web 浏览器中运行 Java 小程序需要使用浏览器插件。然而,截至 2015 年底,许多浏览器供应商要么已经移除了插件支持,要么宣布了移除插件的时间表。一旦浏览器插件消失,就没有理由再使用 Applet API 了。
描述
为以下类添加 @Deprecated(since="9")
注解:
- java.applet.AppletStub
- java.applet.Applet
- java.applet.AudioClip
- java.applet.AppletContext
- javax.swing.JApplet
这些是 Java 中与 applet 相关的类和接口,通常用于在网页中嵌入 Java 小程序。以下是它们的中文解释:
java.applet.AppletStub
:Applet 存根接口,为 Applet 提供了一些必要的功能支持。java.applet.Applet
:Applet 类,所有 Java 小程序的基类,用于开发嵌入网页的 Java 应用。java.applet.AudioClip
:音频剪辑接口,用于播放简单的音频文件。java.applet.AppletContext
:Applet 上下文接口,允许 Applet 与其运行环境进行交互。javax.swing.JApplet
:Swing Applet 类,是基于 Swing 的 Applet 基类,提供了更丰富的 GUI 功能。
需要注意的是,从现代 Java 版本(如 JDK 11 及更高版本)开始,Applet
和相关 API 已被标记为过时,并逐渐被淘汰,推荐使用其他技术(如 Java Web Start 或独立应用程序)来替代。
我们并不打算在下一个主要版本中移除 Applet API,因此我们不会在这些注解中指定 forRemoval = true
。如果在未来的某个时刻我们确实计划移除这个 API,那么我们会在至少一个主要版本之前,在这些注解中添加 forRemoval = true
。
appletviewer
工具也将被弃用。当启动该工具时,将向标准错误流打印一条弃用警告。
风险与假设
这些注解将导致 Java 编译器对所有使用此 API 的代码发出弃用警告。如果将警告视为错误,它们将导致构建失败。