Java™ Plug-in technology (hereafter the "Java Plug-in"),
which is included in the Java Runtime Environment, enables Java
applets to run in popular web browsers on the desktop. The
next-generation Java Plug-in, new in Java SE 6 update 10 release,
provides powerful new capabilities to applets in the web browser,
while improving the overall reliability and functionality of
applets in a backward-compatible manner.
The next-generation Java Plug-in offers a completely redesigned
architecture. Instead of executing applets in the same operating
system process as the web browser, the new plug-in runs one or more
Java virtual machine instances ("JVMs") which connect back to the
browser for full interoperability with the surrounding web page.
This architectural change offers many advantages and enables
several new features.
Improved reliability. The JVM running the applet is
isolated from the web browser at the operating system level. If
something should go wrong while running the applet, or if an
uncooperative applet refuses to shut down, the new Java Plug-in
detects and handles the error condition gracefully; the web browser
is unaffected.
Built-in JNLP support. The new Java Plug-in offers the
capability to launch applets directly from JNLP files, unifying
deployment of Java content both in the browser and out of the
browser (via Java Web Start). Developers can now reuse JNLP
extensions for advanced functionality including the JavaFX run-time libraries,
3D graphics via OpenGL, and
planetary-scale
terrain visualization within applets. Applets can now access
JNLP APIs for persistent data storage, local file system access,
and other useful functionality from sandboxed code.
Improved user experience. The new Java Plug-in starts
applets in the background, so the web browser always remains
responsive. Applets appear on the web page as they become ready to
run.
Improved Java/JavaScript communication. The bridge
between the JavaScript engine in the web browser and the Java
programming language has been completely reimplemented. The new
implementation is backward-compatible and features improved
reliability, performance and cross-browser portability, for both
Java calling JavaScript as well as JavaScript calling Java.
Formerly Mozilla-specific "LiveConnect" functionality, such as the
ability to call static Java methods, instantiate new Java objects
and reference third-party packages from JavaScript, is now
available in all browsers.
Improved applet lifecycle management. Calls to the
applet lifecycle methods init, start,
stop, and destroy are more deterministic
and cross-browser behavior has been improved. The applet class
loader cache and the legacy applet lifecycle, required for backward
compatibility, are fully supported and the behavior of both has
been improved.
Better large heap support. Historically, the maximum
heap size that could be specified for applets via the Java Control
Panel has been limited. This limitation is fixed in the new Java
Plug-in; applets can now utilize as much heap space as command-line
applications.
Better Windows Vista support. Signed applets running in
Protected Mode Internet Explorer on Microsoft's Windows Vista now
have the same privileges as normal user applications, eliminating a
portability barrier to this platform.
Per-applet command-line arguments. JVM command-line
arguments may be specified in the HTML of the web page on a
per-applet basis, providing fine-grained control over options such
as the heap size and Java 2D hardware acceleration features.
Multiple JRE version support. Each individual applet
instance may request a different JRE version on which to run. This
feature is designed for enterprise customers which prefer to
qualify their applets against either a particular JRE version or a
particular JRE family. Both selection of a specific JRE version, or
any in a particular family, are supported in the new Java
Plug-in.
The following topics provide more information about developing
and deploying applets that leverage the next-generation Java
Plug-in.
Applet Development Tutorial - A comprehensive
Java Tutorial that explains various aspects of applet development
and deployment.