JDK-8149502 : JEP 289: Deprecate the Applet API
  • Type: JEP
  • Component: client-libs
  • Priority: P3
  • Status: Closed
  • Resolution: Delivered
  • Fix Versions: 9
  • Submitted: 2016-02-09
  • Updated: 2017-10-19
  • Resolved: 2017-04-27
Related Reports
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8155071 :  
JDK-8155785 :  

Deprecate the Applet API, which is rapidly becoming irrelevant as web-browser vendors remove support for Java browser plug-ins.  Guide developers to alternative technologies such as Java Web Start or installable applications.


To run a Java applet in a web browser requires the use of a browser plug-in.  As of late 2015, however, many browser vendors have either already removed plug-in support or else announced timelines for such removal.  Once browser plug-ins disappear, there will be no reason to use the Applet API.


Add the `@Deprecated(since="9")` annotation to the following classes:

  - java.applet.AppletStub
  - java.applet.Applet
  - java.applet.AudioClip
  - java.applet.AppletContext
  - javax.swing.JApplet

We do not intend to remove the Applet API in the next major release, hence we will not specify `forRemoval = true` in these annotations.  If at some later point we do propose to remove this API then we will add `forRemoval = true` to these annotations at least one major release in advance.

The `appletviewer` tool will also be deprecated.  A deprecation warning will be printed to the standard error stream when the tool is started.

Risks and Assumptions

These annotations will cause deprecation warnings to be emitted by the Java compiler for all code that uses this API.  If warnings are treated as errors, they will result in the build failure.

I'd suggest to deprecate java.beans.AppletInitializer and other related stuff as well. Otherwise the JEP looks incomplete