Oracle has announced it will retire the Java browser plugin. It plans to deprecate the Java browser plugin in JDK 9 and remove the technology from the Oracle JDK and JRE in a future Java SE release, according to a Java Platform Group product management blog.
The announcement drew numerous comments on social media welcoming the move.
One Facebook comment read: “Good to see Oracle finally acknowledging that applets are obsolete. Although at this point, with the major browsers all removing pluginsupport, it’s rapidly becoming irrelevant what Oracle does with the Javabrowser plugin. Java should have made its exit from the browser years ago.”
PCWorld reported that the Java browser plugin has been a frequent target of attackers.
By the time that the Java Development Kit (JDK) 9 – the reference implementation of the next version of Java SE – reaches general availability in March 2017, most modern browsers will no longer accept the Java browser plugin, according to PCWorld.
Browsers Ditch Plugins
In October, Mozilla announced it plans to remove support for plugins in Firefox by the end of 2016. In September, Chrome disabled support for plug-ins that, like Silverlight and Java, use the Netscape Plugin Application Programming Interface (NPAPI) standard. Microsoft’s Edge browser also does not support plug-ins.
With Safari and Internet Explorer the only browsers to continue to accept traditional NPAPI plug-ins after 2016, Oracle is basically forced into this decision, even though Chrome supports a new plug-in technology called Pepper Plug-in API (PPAPI).
The Java Platform Group product management blog said many browser vendors have recently either removed plan to remove standards-based plugin support, eliminating the ability to embed Silverlight, Flash, Java and other plugin-based technologies.
Developers Need Options
With browser vendors working to restrict plugin support in their products, developers of applications relying on the Java browser plugin have to consider alternative options. These options include migrating from Java Applets which rely on a browser plugin to the plugin-free Java Web Start technology.
Oracle plans to deprecate the Java browser plugin in JDK 9 and it will remove the technology from the Oracle JDK and JRE in a future Java SE release.
Early Access releases of JDK 9 are available for testing and download at http://jdk9.java.net.
The plugin technology will be completely removed from the Java Runtime Environment (JRE) and the Oracle Java Development Kit (JDK) in a future Java release to be announced, according to an Oracle white paper. Java Web Start applications do not rely on a browser plugin so they will not be affected by these changes.
How Did We Get Here?
Java began its rise 20 years ago with a tumbling duke applet running in the HotJava browser, the Oracle white paper noted. This preceded Mozilla Firefox, Microsoft Internet Explorer and Google Chrome. Applets enabled richer development functionality through a browser plugin when browser capabilities were limited. They provided centralized distribution of applications without requiring users to install or update applications locally.
The Netscape Navigator browser popularized a standards-based plug-in model with the Netscape Plugin API. Many other browsers adopted this API, allowing plugins to extend the capabilities of browsers to provide cross-browser and cross-platform functionality.
As Java became a leading mainstream development platform, the applet’s hosts – the web browsers – did as well.
The growth of web usage on mobile browsers, usually without support for plugins, led browser makers to restrict and remove standards-based plugin support from their products.
The Oracle JRE can support applets on browsers only for as long as browser vendors provide the necessary cross-browser standards-based plugin API support.
Oracle will not provide additional browser-specific plugins since they would require application developers to write browser-specific applets for every browser they want to support. In addition, without a cross-browser API, Oracle could only offer a subset of the required functionality, which would be different from one browser to the next. This would impact both users and application developers.
Developers Have Alternatives
If an applet cannot convert to a Java Web Start application, developers can consider alternative approaches, the white paper noted.
The javapackager command enables developers to create stand-alone, native install bundles on Windows, OS X and Linux that don’t require a separate JRE installation. Such an option is suited for desktop applications. In such applications, a user may not have their own JRE installed and just want the program to run. It may not be appropriate for server-based applications where an administrator might want complete control of the environment.
JavaFX has a feature called WebView. This allows applications to use an embedded version of WebKit to render HTML5 content. Developers can create applications that use this browser to access remote applications. A developer could create a miniature web browser making it easier for users to launch remote applications.
Big organizations can have a large number of applications deployed and may not know which are applets to target for conversion. Administrators can use the usage tracking feature of Java Advanced Management Console to build an application inventory and identify these applications.
Administrators in organizations that deploy applications from third parties can use the Java Advanced Management Console to track Java usage within their organization, identifying Web Start, Applet, and other Java application types. Such tracking allows them to identify which Java versions are used by which applications. It also enables them to create deployment rules to manage compatibility between versions.
Images from Shutterstock and Oracle.