跳到主要内容

JEP 289:弃用 Applet API

QWen Max 中英对照

概述

弃用 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 的代码发出弃用警告。如果将警告视为错误,它们将导致构建失败。