0% found this document useful (0 votes)
9 views11 pages

Java Applet - Wikipedia

Uploaded by

aeeprnidamarru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views11 pages

Java Applet - Wikipedia

Uploaded by

aeeprnidamarru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

8/24/25, 9:15 AM Java applet - Wikipedia

Java applet
Java applets are small applications written in the Java programming language, or another
programming language that compiles to Java bytecode, and delivered to users in the form of
Java bytecode.

At the time of their introduction, the intended use was for the user to launch the applet from a
web page, and for the applet to then execute within a Java virtual machine (JVM) in a process
separate from the web browser itself. A Java applet could appear in a frame of the web page, a
new application window, a program from Sun called appletviewer,[6] or a stand-alone tool for
testing applets.

Java applets were introduced in the first version of the Java language, which was released in A Java applet that was created as
1995. Beginning in 2013, major web browsers began to phase out support for NPAPI, the supplementary demonstration material for
underlying technology applets used to run. with applets becoming completely unable to be run a scientific publication
by 2015–2017. Java applets were deprecated by Java 9 in 2017.[7][8][9][10][11]

Java applets were usually written in Java, but other languages such as Jython, JRuby, Pascal,[12] Scala, NetRexx, or Eiffel (via
SmartEiffel) could be used as well.

Unlike early versions of JavaScript, Java applets had access to 3D hardware acceleration, making them well-suited for non-trivial,
computation-intensive visualizations. Since applets' introduction, JavaScript has gained support for hardware-accelerated graphics via
canvas technology (or specifically WebGL, then later WebGPU in the case of 3D graphics),[13][14] as well as just-in-time compilation.[15]

Since Java bytecode is cross-platform (or platform independent), Java applets could be executed by clients for many platforms,
including Microsoft Windows, FreeBSD, Unix, macOS and Linux. They could not be run on mobile devices, which do not support
running standard Oracle JVM bytecode. Android devices can run code written in Java compiled for the Android Runtime.

https://en.wikipedia.org/wiki/Java_applet 1/11
8/24/25, 9:15 AM Java applet - Wikipedia

Overview
The applets are used to provide interactive features to web applications that cannot be provided
by HTML alone. They can capture mouse input and also have controls like buttons or check
boxes. In response to user actions, an applet can change the provided graphic content. This
makes applets well-suited for demonstration, visualization, and teaching. There are online applet
collections for studying various subjects, from physics to heart physiology.

An applet can also be a text area only; providing, for instance, a cross-platform command-line
interface to some remote system. If needed, an applet can leave the dedicated area and run as a
separate window. However, applets have very little control over web page content outside the
applet's dedicated area, so they are less useful for improving the site appearance in general,
unlike other types of browser extensions (while applets like news tickers or WYSIWYG editors
are also known). Applets can also play media in formats that are not natively supported by the
browser.

Pages coded in HTML may embed parameters within them that are passed to the applet.
Because of this, the same applet may have a different appearance depending on the parameters
that were passed. A Java applet that uses 3D hardware
acceleration to visualize 3D files in .pdb
As applets were available before HTML5, modern CSS and JavaScript interface DOM were format downloaded from a server[1]
standard, they were also widely used for trivial effects such as mouseover and navigation
buttons. This approach, which posed major problems for accessibility and misused system
resources, is no longer in use and was strongly discouraged even at the time.

Technical information
Most browsers executed Java applets in a sandbox, preventing applets from accessing local data like the file system.[16] The code of the
applet was downloaded from a web server, after which the browser either embedded the applet into a web page or opened a new window
showing the applet's user interface.

https://en.wikipedia.org/wiki/Java_applet 2/11
8/24/25, 9:15 AM Java applet - Wikipedia

The first implementations involved downloading an applet class by class. While classes are small files, there are
often many of them, so applets got a reputation as slow-loading components. However, since .jar files were
introduced, an applet is usually delivered as a single file that has a size similar to an image file (hundreds of
kilobytes to several megabytes).

Java system libraries and runtimes are backwards-compatible, allowing one to write code that runs both on
current and on future versions of the Java virtual machine.

Similar technologies
Many Java developers, blogs and magazines recommended that the Java Web Start technology be used in place of
applets.[17] Java Web Start allowed the launching of unmodified applet code, which then ran in a separate window
(not inside the invoking browser).
Using applet for
A Java Servlet is sometimes informally compared to be "like" a server-side applet, but it is different in its language,
nontrivial animation
functions, and in each of the characteristics described here about applets. illustrating
biophysical topic
(randomly moving
Embedding into a web page ions pass through
voltage gates)[2]
The applet would be displayed on the web page by making use of the deprecated applet HTML element,[18] or the
recommended object element.[19] The embed element can be used[20] with Mozilla family browsers (embed was
deprecated in HTML 4 but is included in HTML 5). This specifies the applet's source and location. Both object and embed tags can also
download and install Java virtual machine (if required) or at least lead to the plugin page. applet and object tags also support loading
of the serialized applets that start in some particular (rather than initial) state. Tags also specify the message that shows up in place of
the applet if the browser cannot run it due to any reason.

However, despite object being officially a recommended tag in 2010, the support of the object tag was not yet consistent among
browsers and Sun kept recommending the older applet tag for deploying in multibrowser environments,[21] as it remained the only tag
consistently supported by the most popular browsers. To support multiple browsers, using the object tag to embed an applet would
require JavaScript (that recognizes the browser and adjusts the tag), usage of additional browser-specific tags or delivering adapted
output from the server side.

https://en.wikipedia.org/wiki/Java_applet 3/11
8/24/25, 9:15 AM Java applet - Wikipedia

The Java browser plug-in relied on NPAPI, which nearly all web browser vendors have removed
support for, or do not implement, due to its age and security issues. In January 2016, Oracle
announced that Java runtime environments based on JDK 9 will discontinue the browser plug-
in.[22]

Advantages
A Java applet could have any or all of the following advantages:[23]

It was simple to make it work on FreeBSD, Linux, Microsoft Windows and macOS – that is,
to make it cross-platform. Applets were supported by most web browsers through the first
decade of the 21st century; since then, however, most browsers have dropped applet
support for security reasons. Using a Java applet for computation –
The same applet would work on "all" installed versions of Java at the same time, rather than intensive visualization of the Mandelbrot
just the latest plug-in version only. However, if an applet requires a later version of the Java set[3]
Runtime Environment (JRE) the client would be forced to wait during the large download.
Most web browsers cached applets so they were quick to load when returning to a web
page. Applets also improved with use: after a first applet is run, the JVM was already
running and subsequent applets started quickly (the JVM will need to restart each time the
browser starts afresh). JRE versions 1.5 and greater restarted the JVM when the browser
navigates between pages, as a security measure which removed that performance gain.
It moved work from the server to the client, making a web solution more scalable with the
number of users/clients.
If a standalone program (like Google Earth) talks to a web server, that server normally needs
to support all prior versions for users who have not kept their client software updated. In
contrast, a browser loaded (and cached) the latest applet version, so there is no need to
support legacy versions.
Applet naturally supported changing user state, such as figure positions on the chessboard.
Developers could develop and debug an applet directly simply by creating a main routine Applets' running speed is sufficient for
(either in the applet's class or in a separate class) and calling init() and start() on the applet, making e.g. nontrivial computer games
thus allowing for development in their favorite Java SE development environment. All one that play chess.[4]
had to do was to re-test the applet in the AppletViewer program or a web browser to ensure
it conforms to security restrictions.
An untrusted applet had no access to the local machine and can only access the server it came from. This makes applets much
safer to run than the native executables that they would replace. However, a signed applet could have full access to the machine it
is running on, if the user agreed.

https://en.wikipedia.org/wiki/Java_applet 4/11
8/24/25, 9:15 AM Java applet - Wikipedia

Java applets were fast, with similar performance to natively installed software.

Disadvantages
Java applets had the following disadvantages compared to other client-side web technologies:

Java applets would depend on a Java Runtime Environment (JRE), a complex and heavy-
weight software package. They also normally required a plug-in for the web browser. Some
organizations only allow software installed by an administrator. As a result, users were
unable to view applets unless one was important enough to justify contacting the
administrator to request installation of the JRE and plug-in. NASA World Wind (open source) is a
If an applet requires a newer JRE than available on the system, the user running it the first second generation applet[5] that makes
time will need to wait for the large JRE download to complete. heavy use of OpenGL and on-demand
Mobile browsers on iOS or Android, never run Java applets at all.[24] Even before the data downloading to provide a detailed
deprecation of applets on all platforms, desktop browsers phased out Java applet support 3D map of the world.
concurrently with the rise of mobile operating systems.
There was no standard to make the content of applets available to screen readers.
Therefore, applets harmed the accessibility of a web site to users with special needs.
As with any client-side scripting, security restrictions made it difficult or even impossible for
some untrusted applets to achieve their desired goals. Only by editing the java.policy file in
the JAVA JRE installation could one grant access to the local filesystem or system clipboard,
or to network sources other than the one that served the applet to the browser.
Most users did not care about the difference between untrusted and trusted applets, so this
distinction did not help much with security. The ability to run untrusted applets was
eventually removed entirely to fix this, before all applets were removed.

Compatibility-related lawsuits Web access to the server console at the


hardware level with the help of a Java
Sun made considerable efforts to ensure compatibility is maintained between Java versions as applet
they evolve, enforcing Java portability by law if required. Oracle seems to be continuing the
same strategy.

https://en.wikipedia.org/wiki/Java_applet 5/11
8/24/25, 9:15 AM Java applet - Wikipedia

1997: Sun vs Microsoft


The 1997 lawsuit,[25] was filed after Microsoft created a modified Java Virtual Machine of their
own, which shipped with Internet Explorer. Microsoft added about 50 methods and 50 fields[25]
into the classes within the java.awt, java.lang, and java.io packages. Other modifications
included removal of RMI capability and replacement of Java Native Interface from JNI to RNI, a
different standard. RMI was removed because it only easily supports Java to Java
communications and competes with Microsoft DCOM technology. Applets that relied on these
changes or just inadvertently used them worked only within Microsoft's Java system. Sun sued
Demonstration of image processing using
for breach of trademark, as the point of Java was that there should be no proprietary extensions
two dimensional Fourier transform
and that code should work everywhere. Microsoft agreed to pay Sun $20 million, and Sun
agreed to grant Microsoft limited license to use Java without modifications only and for a
limited time.[26]

2002: Sun vs Microsoft


Microsoft continued to ship its own unmodified Java virtual machine. Over the years it became extremely outdated yet still default for
Internet Explorer. A later study revealed that applets of this time often contain their own classes that mirror Swing and other newer
features in a limited way.[27] In 2002, Sun filed an antitrust lawsuit, claiming that Microsoft's attempts at illegal monopolization had
harmed the Java platform. Sun demanded Microsoft distribute Sun's current, binary implementation of Java technology as part of
Windows, distribute it as a recommended update for older Microsoft desktop operating systems and stop the distribution of Microsoft's
Virtual Machine (as its licensing time, agreed in the prior lawsuit, had expired).[26] Microsoft paid $700 million for pending antitrust
issues, another $900 million for patent issues and a $350 million royalty fee to use Sun's software in the future.[28]

Security
There were two applet types with very different security models: signed applets and unsigned applets.[29] Starting with Java SE 7
Update 21 (April 2013) applets and Web-Start Apps are encouraged to be signed with a trusted certificate, and warning messages appear
when running unsigned applets.[30] Further, starting with Java 7 Update 51 unsigned applets were blocked by default; they could be run
by creating an exception in the Java Control Panel.[31]

https://en.wikipedia.org/wiki/Java_applet 6/11
8/24/25, 9:15 AM Java applet - Wikipedia

Unsigned
Limits on unsigned applets were understood as "draconian": they have no access to the local filesystem and web access limited to the
applet download site; there are also many other important restrictions. For instance, they cannot access all system properties, use their
own class loader, call native code, execute external commands on a local system or redefine classes belonging to core packages included
as part of a Java release. While they can run in a standalone frame, such frame contains a header, indicating that this is an untrusted
applet. Successful initial call of the forbidden method does not automatically create a security hole as an access controller checks the
entire stack of the calling code to be sure the call is not coming from an improper location.

As with any complex system, many security problems have been discovered and fixed since Java was first released. Some of these (like
the Calendar serialization security bug) persisted for many years with nobody being aware. Others have been discovered in use by
malware in the wild.

Some studies mention applets crashing the browser or overusing CPU resources but these are classified as nuisances and not as true
security flaws. However, unsigned applets may be involved in combined attacks that exploit a combination of multiple severe
configuration errors in other parts of the system. An unsigned applet can also be more dangerous to run directly on the server where it is
hosted because while code base allows it to talk with the server, running inside it can bypass the firewall. An applet may also try DoS
attacks on the server where it is hosted, but usually people who manage the web site also manage the applet, making this unreasonable.
Communities may solve this problem via source code review or running applets on a dedicated domain.

The unsigned applet can also try to download malware hosted on originating server. However it could only store such file into a
temporary folder (as it is transient data) and has no means to complete the attack by executing it. There were attempts to use applets for
spreading Phoenix and Siberia exploits this way, but these exploits do not use Java internally and were also distributed in several other
ways.

Signed
A signed applet[32] contains a signature that the browser should verify through a remotely running, independent certificate authority
server. Producing this signature involves specialized tools and interaction with the authority server maintainers. Once the signature is
verified, and the user of the current machine also approves, a signed applet can get more rights, becoming equivalent to an ordinary
standalone program. The rationale is that the author of the applet is now known and will be responsible for any deliberate damage. This
approach allows applets to be used for many tasks that are otherwise not possible by client-side scripting. However, this approach
requires more responsibility from the user, deciding whom he or she trusts. The related concerns include a non-responsive authority
server, wrong evaluation of the signer identity when issuing certificates, and known applet publishers still doing something that the user
would not approve of. Hence signed applets that appeared from Java 1.1 may actually have more security concerns.

https://en.wikipedia.org/wiki/Java_applet 7/11
8/24/25, 9:15 AM Java applet - Wikipedia

Self-signed
Self-signed applets, which are applets signed by the developer themselves, may potentially pose a security risk; java plugins provide a
warning when requesting authorization for a self-signed applet, as the function and safety of the applet is guaranteed only by the
developer itself, and has not been independently confirmed. Such self-signed certificates are usually only used during development prior
to release where third-party confirmation of security is unimportant, but most applet developers will seek third-party signing to ensure
that users trust the applet's safety.

Java security problems are not fundamentally different from similar problems of any client-side scripting platform[33]. In particular, all
issues related to signed applets also apply to Microsoft ActiveX components.

As of 2014, self-signed and unsigned applets are no longer accepted by the commonly available Java plugins or Java Web Start.
Consequently, developers who wish to deploy Java applets have no alternative but to acquire trusted certificates from commercial
sources.

Alternatives
Alternative technologies exist (for example, WebAssembly[34] and JavaScript) that satisfy all or more of the scope of what was possible
with an applet. JavaScript could coexist with applets in the same page, assist in launching applets (for instance, in a separate frame or
providing platform workarounds) and later be called from the applet code. As JavaScript gained in features and performance, the
support for and use of applets declined, until their eventual removal.

See also
ActiveX Computer
Adobe Flash Player programming portal
Curl (programming language)
Jakarta Servlet
Java Web Start
JavaFX
Rich web application
SWF
WebGL
https://en.wikipedia.org/wiki/Java_applet 8/11
8/24/25, 9:15 AM Java applet - Wikipedia

Silverlight

References
1. "The home site of the 3D protein viewer (Openastexviewer) under LGPL" (https://web.archive.org/web/20090801135810/http://www.
openastexviewer.net/web/). Archived from the original (http://openastexviewer.net/web/) on 1 August 2009. Retrieved 21 September
2009.
2. "Generation of an action potential in cardiac cells using interactive java applet. Excitable media. movies excitable media Fitzhug
nagumo beeler reuter luo rudy model mathematical cell modeling" (http://thevirtualheart.org/CAPindex.html). Thevirtualheart.org.
Retrieved 22 March 2022.
3. "The home site of the Mandelbrot set applet under GPL" (https://web.archive.org/web/20130508054436/http://math.uchicago.edu/~d
annyc/fractals/simple.html). Archived from the original (http://math.uchicago.edu/~dannyc/fractals/simple.html) on 8 May 2013.
Retrieved 29 July 2013.
4. "The home site of the chess applet under BSD" (https://web.archive.org/web/20090907072956/http://english.op.org/~peter/ChessAp
p/). Archived from the original (http://english.op.org/~peter/ChessApp/) on 7 September 2009.
5. "Next Generation in Applet Java Plug-in Technology" (https://web.archive.org/web/20090404094007/http://java.sun.com/developer/t
echnicalArticles/javase/newapplets/). Archived from the original (http://java.sun.com/developer/technicalArticles/javase/newapplets/)
on 4 April 2009. Retrieved 25 September 2009.
6. "appletviewer — Java SE 8" (https://docs.oracle.com/javase/8/docs/technotes/tools/windows/appletviewer.html). Oracle. Retrieved
5 December 2023.
7. "Java 9 Release Notes" (http://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html). Oracle.com.
8. "JEP 289: Deprecate the Applet API" (http://openjdk.java.net/jeps/289). Openjdk.java.net. Retrieved 22 March 2022.
9. "JPG blog: Moving to a Plugin-Free Web" (https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free).
Blogs.oracle.com.
10. "JPG blog: Further Updates to 'Moving to a Plugin-Free Web' " (https://blogs.oracle.com/java-platform-group/entry/further_updates_t
o_moving_to). Blogs.oracle.com.
11. "Java Client Roadmap Update" (http://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf)
(PDF). Oracle.com. Retrieved 22 March 2022.
12. "FPC JVM – Free Pascal wiki" (https://wiki.freepascal.org/FPC_JVM). Wiki.freepascal.org. Retrieved 22 March 2022.
13. "canvas – HTML" (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#Browser_compatibility). Mozilla Developer
Network. Retrieved 15 August 2015.
14. "WebGL – Web API Interfaces" (https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API#Browser_compatibility). Mozilla
Developer Network. Retrieved 15 August 2015.
15. "Design Elements – Chrome V8" (https://developers.google.com/v8/design?hl=en). Retrieved 15 August 2015.
16. McGraw, Gary; Felten, Edward (1999). "What Untrusted Java Code Can't Do" (http://www.securingjava.com/chapter-two/chapter-tw
o-2.html). Securingjava.com. Retrieved 26 December 2021.
https://en.wikipedia.org/wiki/Java_applet 9/11
8/24/25, 9:15 AM Java applet - Wikipedia

17. Srinivas, Raghavan N. (6 July 2001). "Java Web Start to the rescue" (https://www.infoworld.com/article/2075391/java-web-start-to-th
e-rescue.html). JavaWorld. Retrieved 13 July 2020.
18. "Objects, Images, and Applets in HTML documents" (http://www.w3.org/TR/html401/struct/objects.html#edef-APPLET). W3.org.
Retrieved 22 March 2022.
19. "Objects, Images, and Applets in HTML documents" (http://www.w3.org/TR/html401/struct/objects.html#edef-OBJECT). W3.org.
Retrieved 22 March 2022.
20. "Java Downloads for All Operating Systems" (http://www.java.com/en/download/manual.jsp). Java.com. 14 August 2012. Retrieved
14 June 2013.
21. "Sun's position on applet and object tags" (https://web.archive.org/web/20100609015456/http://download.java.net/jdk7/docs/technot
es/guides/plugin/developer_guide/using_tags.html#object). Archived from the original (http://download.java.net/jdk7/docs/technotes/
guides/plugin/developer_guide/using_tags.html#object) on 9 June 2010. Retrieved 14 January 2010.
22. "Oracle deprecates the Java browser plugin, prepares for its demise" (https://arstechnica.com/information-technology/2016/01/oracl
e-deprecates-the-java-browser-plugin-prepares-for-its-demise/). Ars Technica. 28 January 2016. Retrieved 15 April 2016.
23. Oracle official (http://download.oracle.com/javase/tutorial/deployment/applet/index.html) overview on Java applet technology
24. "How do I get Java for Mobile device?" (http://www.java.com/en/download/faq/java_mobile.xml). Java.com. 30 July 2014.
25. Zukowski, John (1 October 1997). "What does Sun's lawsuit against Microsoft mean for Java developers?" (https://www.infoworld.co
m/article/2077055/what-does-sun-s-lawsuit-against-microsoft-mean-for-java-developers-.html). JavaWorld. Retrieved 13 July 2020.
26. "Sun's page, devoted for the lawsuits against Microsoft" (https://web.archive.org/web/20090819120756/http://www.sun.com/lawsuit/
summary.html). Archived from the original (http://www.sun.com/lawsuit/summary.html) on 19 August 2009.
27. Kenai.com (2011) (http://kenai.com/projects/ultrastudio-org/forums/message-forum/topics/7034-Most-common-problems-found-in-th
e-code-of-the-reviewed-applets) Archived (https://web.archive.org/web/20110823154347/http://kenai.com/projects/ultrastudio-org/for
ums/message-forum/topics/7034-Most-common-problems-found-in-the-code-of-the-reviewed-applets) 23 August 2011 at the
Wayback Machine Most common problems, found in the code of the reviewed applets.
28. "Microsoft and Sun Microsystems Enter Broad Cooperation Agreement; Settle Outstanding Litigation: Ten Year Agreement Sets New
Framework for Industry Cooperation; Reduces Cost and Complexity for Customers" (https://web.archive.org/web/20100225015449/
http://www.microsoft.com/presspass/press/2004/apr04/04-02SunAgreementPR.mspx). Microsoft. 25 February 2010. Archived from
the original (http://www.microsoft.com/presspass/press/2004/apr04/04-02SunAgreementPR.mspx) on 25 February 2010. Retrieved
22 March 2022.
29. "What Applets Can and Cannot Do (The Java Tutorials > Deployment > Java Applets)" (https://docs.oracle.com/javase/tutorial/deplo
yment/applet/security.html). Docs.oracle.com. Retrieved 22 March 2022.
30. "Java Applet & Web Start – Code Signing" (http://www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html#6
0). Oracle. Retrieved 28 February 2014.
31. "What should I do when I see a security prompt from Java?" (http://java.com/en/download/help/appsecuritydialogs.xml). Oracle.
Retrieved 28 February 2014.
32. "Java Applet Security | Java 2 Platform Security | InformIT" (https://www.informit.com/articles/article.aspx?p=433382&seqNum=2).
Informit.com. Retrieved 22 March 2022.

https://en.wikipedia.org/wiki/Java_applet 10/11
8/24/25, 9:15 AM Java applet - Wikipedia

33. "To be fair, significantly more World Wide Web users use the Netscape product than use the Microsoft product today, though the gap
appears to be closing" (http://www.wiley.com/legacy/compbooks/press/mcgch1.html). Wiley.com. Retrieved 17 March 2017.
34. "Mozilla tries to do Java as it should have been – with a WASI spec for all devices, computers, operating systems" (https://www.ther
egister.com/2019/03/29/mozilla_wasi_spec/). Theregister.com. Retrieved 6 October 2020.

External links
Latest version of Sun Microsystems' Java Virtual Machine (http://www.java.com/download/) (includes browser plug-ins for running
Java applets in most web browsers).
Information about writing applets from Oracle (http://docs.oracle.com/javase/tutorial/deployment/applet/index.html)
Demonstration applets from Sun Microsystems (http://java.sun.com/applets/jdk/1.4/index.html) (JDK 1.4 – include source code)

Retrieved from "https://en.wikipedia.org/w/index.php?title=Java_applet&oldid=1297051550"

https://en.wikipedia.org/wiki/Java_applet 11/11

You might also like