855:. 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.
1872:
2250:
2262:
903:
742:
572:
54:
77:
105:
65:
22:
891:) 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.
815:, 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
46:
863:
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
830:
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
653:
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
797:
There were two applet types with very different security models: signed applets and unsigned applets. 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. Further,
512:
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
727:
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
842:
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
300:
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
93:
30:
728:
stop the distribution of
Microsoft's Virtual Machine (as its licensing time, agreed in the prior lawsuit, had expired). 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.
822:
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.
864:
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.
806:
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
549:
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
710:, as the point of Java was that there should be no proprietary extensions 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.
874:
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.
293:. 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.
531:) 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.
632:
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
718:
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
657:
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
478:, 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.
214:.{{citation needed|reason=There's a claim being made with no evidence of its truth. Speed is also an ambiguous term here. They most certainly had massive start time overhead.|date=June 2021} Unlike JavaScript, Java applets had access to 3D
537:
Developers could develop and debug an applet directly simply by creating a main routine (either in the applet's class or in a separate class) and calling init() and start() on the applet, thus allowing for development in their favorite
451:
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.
1568:
372:
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
1586:"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"
670:
made considerable efforts to ensure compatibility is maintained between Java versions as they evolve, enforcing Java portability by law if required. Oracle seems to be continuing the same strategy.
316:
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.
993:"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"
647:, never run Java applets at all. Even before the deprecation of applets on all platforms, desktop browsers phased out Java applet support concurrently with the rise of mobile operating systems.
867:
Java security problems are not fundamentally different from similar problems of any client-side scripting platform. In particular, all issues related to signed applets also apply to
Microsoft
471:
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.
409:
is sometimes informally compared to be "like" a server-side applet, but it is different in its language, functions, and in each of the characteristics described here about applets.
339:
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.
1432:
402:
technology be used in place of applets. Java Web Start allowed the launching of unmodified applet code, which then ran in a separate window (not inside the invoking browser).
1565:
467:
tag for deploying in multibrowser environments, as it remained the only tag consistently supported by the most popular browsers. To support multiple browsers, using the
168:
Java applets were introduced in the first version of the Java language, which was released in 1995. Beginning in 2013, major web browsers began to phase out support for
650:
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.
835:
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
490:
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
542:
development environment. All one had to do was to re-test the applet in the AppletViewer program or a web browser to ensure it conforms to security restrictions.
218:, making them well-suited for non-trivial, computation-intensive visualizations. As browsers have gained support for hardware-accelerated graphics thanks to the
831:
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
379:
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).
1458:
636:
If an applet requires a newer JRE than available on the system, the user running it the first time will need to wait for the large JRE download to complete.
1585:
1710:"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"
1805:
1518:
706:
technology. Applets that relied on these changes or just inadvertently used them worked only within
Microsoft's Java system. Sun sued for breach of
1061:
798:
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.
628:
Java applets would depend on a Java
Runtime Environment (JRE), a complex and heavy-weight software package. They also normally required a
172:, the underlying technology applets used to run. with applets becoming completely unable to be run by 2015–2017. Java applets were
1436:
1017:
390:
are backwards-compatible, allowing one to write code that runs both on current and on future versions of the Java virtual machine.
494:
through the first decade of the 21st century; since then, however, most browsers have dropped applet support for security reasons.
702:, a different standard. RMI was removed because it only easily supports Java to Java communications and competes with Microsoft
2297:
1798:
2470:
2254:
1188:
1241:
2391:
1640:
703:
49:
Using applet for nontrivial animation illustrating biophysical topic (randomly moving ions pass through voltage gates)
1791:
1548:
784:
611:
1043:
1263:
1109:
682:, which shipped with Internet Explorer. Microsoft added about 50 methods and 50 fields into the classes within the
1735:"Mozilla tries to do Java as it should have been – with a WASI spec for all devices, computers, operating systems"
1170:
1087:
843:
exploits this way, but these exploits do not use Java internally and were also distributed in several other ways.
1839:
966:
751:
539:
38:
313:
editors are also known). Applets can also play media in formats that are not natively supported by the browser.
2434:
2132:
1856:
1593:
679:
593:
1333:
2422:
2202:
2112:
2097:
1152:
691:
497:
The same applet would work on "all" installed versions of Java at the same time, rather than just the latest
200:
188:
851:
A signed applet contains a signature that the browser should verify through a remotely running, independent
513:
the JVM when the browser navigates between pages, as a security measure which removed that performance gain.
2127:
1833:
589:
443:
tags can also download and install Java virtual machine (if required) or at least lead to the plugin page.
435:
was deprecated in HTML 4 but is included in HTML 5). This specifies the applet's source and location. Both
192:
1615:
1483:
699:
2266:
2082:
1962:
921:
908:
123:
161:
itself. A Java applet could appear in a frame of the web page, a new application window, a program from
2290:
2178:
1684:
644:
262:
1768:
261:. They could not be run on mobile devices, which do not support running standard Oracle JVM bytecode.
2331:
2122:
2064:
1065:
277:
The applets are used to provide interactive features to web applications that cannot be provided by
2417:
2306:
1814:
832:
227:
25:
A Java applet that was created as supplementary demonstration material for a scientific publication
2363:
2338:
2326:
2321:
2149:
827:
582:
145:
At the time of their introduction, the intended use was for the user to launch the applet from a
2475:
2188:
2054:
1911:
1886:
1385:
1360:
755:
324:
297:
97:
2283:
2074:
2003:
1307:
695:
624:
Java applets had the following disadvantages compared to other client-side web technologies:
332:
215:
34:
1734:
2049:
1942:
1901:
1891:
1828:
941:
534:
Applet naturally supported changing user state, such as figure positions on the chessboard.
502:
150:
127:
1709:
1662:
766:
8:
2368:
629:
498:
154:
68:
Applets' running speed is sufficient for making e.g. nontrivial computer games that play
1616:"What Applets Can and Cannot Do (The Java™ Tutorials > Deployment > Java Applets)"
1021:
2444:
2193:
2183:
1993:
1983:
852:
521:
517:
419:
349:
286:
238:
1496:
210:
Java applets run at very fast speeds and until 2011, they were many times faster than
375:
362:
302:
282:
242:
131:
109:
57:
Using a Java applet for computation – intensive visualization of the
2480:
2233:
2198:
2059:
2018:
667:
554:
546:
162:
296:
An applet can also be a text area only; providing, for instance, a cross-platform
2223:
1932:
1773:
1572:
926:
819:
of the calling code to be sure the call is not coming from an improper location.
387:
266:
169:
1285:
2028:
1998:
1978:
1952:
931:
399:
383:
366:
234:
219:
58:
463:
tag was not yet consistent among browsers and Sun kept recommending the older
417:
The applet would be displayed on the web page by making use of the deprecated
2464:
2218:
2023:
1988:
1947:
1410:
135:
2228:
1871:
2353:
1783:
992:
808:
720:
528:
406:
1765:(includes browser plug-ins for running Java applets in most web browsers).
1552:
100:
to the server console at the hardware level with the help of a Java applet
2412:
2358:
1047:
884:
836:
812:
491:
354:
306:
204:
173:
158:
88:
and on-demand data downloading to provide a detailed 3D map of the world.
53:
2117:
1845:
888:
816:
596: in this section. Unsourced material may be challenged and removed.
524:, making a web solution more scalable with the number of users/clients.
365:
the applet into a web page or opened a new window showing the applet's
358:
328:
211:
179:
Java applets were usually written in Java, but other languages such as
81:
45:
1685:"Java Applet Security | Java 2 Platform Security | InformIT"
1216:
335:
were standard, they were also widely used for trivial effects such as
92:
2449:
2087:
1851:
1589:
1523:
1519:"What does Sun's lawsuit against Microsoft mean for Java developers?"
1338:
967:"The home site of the 3D protein viewer (Openastexviewer) under LGPL"
724:
707:
509:
336:
290:
2261:
1459:"Oracle deprecates the Java browser plugin, prepares for its demise"
902:
571:
501:
version only. However, if an applet requires a later version of the
84:(open source) is a second generation applet that makes heavy use of
2439:
1127:
505:(JRE) the client would be forced to wait during the large download.
146:
139:
970:
76:
29:
2348:
2343:
2157:
2092:
2033:
2013:
2008:
1957:
1896:
1861:
916:
868:
723:
and other newer features in a limited way. In 2002, Sun filed an
654:
sources other than the one that served the applet to the browser.
486:
A Java applet could have any or all of the following advantages:
310:
246:
196:
1762:
1575:
Most common problems, found in the code of the reviewed applets.
762:
165:
called appletviewer, or a stand-alone tool for testing applets.
2427:
2407:
2275:
2162:
2107:
1937:
1906:
936:
826:
Some studies mention applets crashing the browser or overusing
678:
The 1997 lawsuit, was filed after Microsoft created a modified
459:
being officially a recommended tag in 2010, the support of the
398:
Many Java developers, blogs and magazines recommended that the
180:
119:
85:
104:
64:
21:
2102:
946:
475:
320:
258:
254:
237:(or platform independent), Java applets could be executed by
230:
JavaScript, the speed difference has become less noticeable.
223:
184:
69:
1171:"JPG blog: Further Updates to 'Moving to a Plugin-Free Web'"
278:
250:
1663:"What should I do when I see a security prompt from Java?"
1777:
640:
1763:
Latest version of Sun Microsystems' Java Virtual Machine
1549:"Sun's page, devoted for the lawsuits against Microsoft"
353:, preventing applets from accessing local data like the
108:
Demonstration of image processing using two dimensional
1018:"The home site of the Mandelbrot set applet under GPL"
265:
devices can run code written in Java compiled for the
898:
1062:"Next Generation in Applet Java Plug-in Technology"
690:packages. Other modifications included removal of
431:element can be used with Mozilla family browsers (
662:
2462:
1451:
1386:"Objects, Images, and Applets in HTML documents"
1361:"Objects, Images, and Applets in HTML documents"
357:. The code of the applet was downloaded from a
149:, and for the applet to then execute within a
2291:
1799:
1769:Information about writing applets from Oracle
1044:"The home site of the chess applet under BSD"
883:Alternative technologies exist (for example,
138:, and delivered to users in the form of Java
1813:
1641:"Java Applet & Web Start – Code Signing"
1543:
1541:
1305:
412:
1774:Demonstration applets from Sun Microsystems
2298:
2284:
1806:
1792:
1780:1.4 – include source code)
1433:"Sun's position on applet and object tags"
1411:"Java Downloads for All Operating Systems"
839:or running applets on a dedicated domain.
765:. Please do not remove this message until
1538:
785:Learn how and when to remove this message
713:
673:
612:Learn how and when to remove this message
347:Most browsers executed Java applets in a
1516:
1512:
1510:
1331:
761:Relevant discussion may be found on the
342:
226:in the case of 3D graphics), as well as
103:
91:
75:
63:
52:
44:
28:
20:
1153:"JPG blog: Moving to a Plugin-Free Web"
393:
2463:
1497:"How do I get Java for Mobile device?"
2279:
1787:
1507:
1332:Srinivas, Raghavan N. (6 July 2001).
1306:McGraw, Gary; Felten, Edward (1999).
1403:
985:
735:
594:adding citations to reliable sources
565:
1308:"What Untrusted Java Code Can't Do"
1128:"JEP 289: Deprecate the Applet API"
474:The Java browser plug-in relied on
13:
2392:Lightweight User Interface Toolkit
1592:. 25 February 2010. Archived from
1486:overview on Java applet technology
1425:
14:
2492:
1756:
1517:Zukowski, John (1 October 1997).
680:Java Virtual Machine of their own
423:HTML element, or the recommended
361:, after which the browser either
319:As applets were available before
126:programming language, or another
16:Small application written in Java
2305:
2260:
2249:
2248:
1870:
901:
740:
570:
561:
2267:Computer programming portal
1727:
1702:
1677:
1655:
1633:
1608:
1578:
1559:
1489:
1477:
1378:
1353:
1325:
1299:
1278:
1256:
1234:
1209:
1181:
1163:
878:
581:needs additional citations for
557:to natively installed software.
2435:Application Foundation Classes
1972:Major third-party technologies
1334:"Java Web Start to the rescue"
1145:
1120:
1102:
1080:
1054:
1036:
1010:
959:
858:
694:capability and replacement of
663:Compatibility-related lawsuits
527:If a standalone program (like
241:for many platforms, including
1:
2423:Lightweight Java Game Library
2203:Sun Microsystems Laboratories
1286:"Design Elements – Chrome V8"
952:
553:Java applets were fast, with
481:
1264:"WebGL – Web API Interfaces"
1217:"FPC JVM – Free Pascal wiki"
1189:"Java Client Roadmap Update"
853:certificate authority server
285:and also have controls like
222:technology (or specifically
7:
2471:Java (programming language)
1266:. Mozilla Developer Network
1244:. Mozilla Developer Network
922:Curl (programming language)
909:Computer programming portal
894:
801:
767:conditions to do so are met
731:
272:
33:A Java applet that uses 3D
10:
2497:
2179:Apache Software Foundation
1413:. Java.com. 14 August 2012
1088:"appletviewer — Java SE 8"
2400:
2379:
2332:Java AWT Native Interface
2314:
2246:
2211:
2171:
2148:
2141:
2073:
2065:Free Java implementations
2042:
1971:
1920:
1879:
1868:
1821:
846:
413:Embedding into a web page
207:) could be used as well.
37:to visualize 3D files in
2418:Java Bindings for OpenGL
1815:Java (software platform)
503:Java Runtime Environment
281:alone. They can capture
41:downloaded from a server
2364:Pluggable look and feel
2339:Standard Widget Toolkit
2327:Abstract Window Toolkit
2322:Java Foundation Classes
516:It moved work from the
233:Since Java bytecode is
2189:Java Community Process
2055:Java Community Process
1571:23 August 2011 at the
1110:"Java 9 Release Notes"
714:2002: Sun vs Microsoft
674:1997: Sun vs Microsoft
298:command-line interface
112:
101:
89:
73:
61:
50:
42:
26:
1921:Platform technologies
696:Java Native Interface
343:Technical information
228:just-in-time compiled
216:hardware acceleration
107:
95:
79:
67:
56:
48:
35:hardware acceleration
32:
24:
2050:Java version history
1902:Java virtual machine
1892:Java Development Kit
1050:on 7 September 2009.
942:Rich web application
590:improve this article
394:Similar technologies
305:(while applets like
151:Java virtual machine
128:programming language
2369:synth Look and Feel
1880:Oracle technologies
1596:on 25 February 2010
1221:Wiki.freepascal.org
997:Thevirtualheart.org
754:of this section is
684:java.awt, java.lang
639:Mobile browsers on
555:similar performance
176:by Java 9 in 2017.
2445:QuickTime for Java
2194:Oracle Corporation
2184:Eclipse Foundation
1555:on 19 August 2009.
837:source code review
508:Most web browsers
303:browser extensions
157:separate from the
120:small applications
113:
102:
90:
74:
62:
51:
43:
27:
2458:
2457:
2273:
2272:
2242:
2241:
1465:. 28 January 2016
795:
794:
787:
622:
621:
614:
455:However, despite
243:Microsoft Windows
110:Fourier transform
2488:
2300:
2293:
2286:
2277:
2276:
2265:
2264:
2252:
2251:
2234:Patrick Naughton
2199:Sun Microsystems
2146:
2145:
2060:Sun Microsystems
1953:Web Start (JNLP)
1874:
1808:
1801:
1794:
1785:
1784:
1750:
1749:
1747:
1745:
1731:
1725:
1724:
1722:
1720:
1706:
1700:
1699:
1697:
1695:
1681:
1675:
1674:
1672:
1670:
1659:
1653:
1652:
1650:
1648:
1637:
1631:
1630:
1628:
1626:
1612:
1606:
1605:
1603:
1601:
1582:
1576:
1566:Kenai.com (2011)
1563:
1557:
1556:
1551:. Archived from
1545:
1536:
1535:
1533:
1531:
1514:
1505:
1504:
1493:
1487:
1481:
1475:
1474:
1472:
1470:
1455:
1449:
1448:
1446:
1444:
1435:. Archived from
1429:
1423:
1422:
1420:
1418:
1407:
1401:
1400:
1398:
1396:
1382:
1376:
1375:
1373:
1371:
1357:
1351:
1350:
1348:
1346:
1329:
1323:
1322:
1320:
1318:
1312:Securingjava.com
1303:
1297:
1296:
1294:
1292:
1282:
1276:
1275:
1273:
1271:
1260:
1254:
1253:
1251:
1249:
1238:
1232:
1231:
1229:
1227:
1213:
1207:
1206:
1204:
1202:
1193:
1185:
1179:
1178:
1175:Blogs.oracle.com
1167:
1161:
1160:
1157:Blogs.oracle.com
1149:
1143:
1142:
1140:
1138:
1132:Openjdk.java.net
1124:
1118:
1117:
1106:
1100:
1099:
1097:
1095:
1084:
1078:
1077:
1075:
1073:
1064:. Archived from
1058:
1052:
1051:
1046:. Archived from
1040:
1034:
1033:
1031:
1029:
1020:. Archived from
1014:
1008:
1007:
1005:
1003:
989:
983:
982:
980:
978:
973:on 1 August 2009
969:. Archived from
963:
911:
906:
905:
790:
783:
779:
776:
770:
744:
743:
736:
617:
610:
606:
603:
597:
574:
566:
470:
466:
462:
458:
450:
446:
442:
438:
434:
430:
426:
422:
384:system libraries
378:
2496:
2495:
2491:
2490:
2489:
2487:
2486:
2485:
2461:
2460:
2459:
2454:
2396:
2380:Deprecated APIs
2375:
2310:
2304:
2274:
2269:
2259:
2238:
2224:Arthur van Hoff
2207:
2167:
2137:
2069:
2038:
1967:
1916:
1875:
1866:
1817:
1812:
1759:
1754:
1753:
1743:
1741:
1739:Theregister.com
1733:
1732:
1728:
1718:
1716:
1708:
1707:
1703:
1693:
1691:
1683:
1682:
1678:
1668:
1666:
1661:
1660:
1656:
1646:
1644:
1639:
1638:
1634:
1624:
1622:
1620:Docs.oracle.com
1614:
1613:
1609:
1599:
1597:
1584:
1583:
1579:
1573:Wayback Machine
1564:
1560:
1547:
1546:
1539:
1529:
1527:
1515:
1508:
1503:. 30 July 2014.
1495:
1494:
1490:
1484:Oracle official
1482:
1478:
1468:
1466:
1457:
1456:
1452:
1442:
1440:
1431:
1430:
1426:
1416:
1414:
1409:
1408:
1404:
1394:
1392:
1384:
1383:
1379:
1369:
1367:
1359:
1358:
1354:
1344:
1342:
1330:
1326:
1316:
1314:
1304:
1300:
1290:
1288:
1284:
1283:
1279:
1269:
1267:
1262:
1261:
1257:
1247:
1245:
1242:"canvas – HTML"
1240:
1239:
1235:
1225:
1223:
1215:
1214:
1210:
1200:
1198:
1191:
1187:
1186:
1182:
1169:
1168:
1164:
1151:
1150:
1146:
1136:
1134:
1126:
1125:
1121:
1108:
1107:
1103:
1093:
1091:
1086:
1085:
1081:
1071:
1069:
1068:on 4 April 2009
1060:
1059:
1055:
1042:
1041:
1037:
1027:
1025:
1016:
1015:
1011:
1001:
999:
991:
990:
986:
976:
974:
965:
964:
960:
955:
927:Jakarta Servlet
907:
900:
897:
881:
861:
849:
804:
791:
780:
774:
771:
760:
745:
741:
734:
716:
676:
665:
618:
607:
601:
598:
587:
575:
564:
484:
468:
464:
460:
456:
448:
444:
440:
436:
432:
428:
424:
418:
415:
396:
374:
345:
275:
267:Android Runtime
122:written in the
17:
12:
11:
5:
2494:
2484:
2483:
2478:
2473:
2456:
2455:
2453:
2452:
2447:
2442:
2437:
2432:
2431:
2430:
2420:
2415:
2410:
2404:
2402:
2398:
2397:
2395:
2394:
2389:
2383:
2381:
2377:
2376:
2374:
2373:
2372:
2371:
2366:
2361:
2351:
2346:
2341:
2336:
2335:
2334:
2324:
2318:
2316:
2312:
2311:
2303:
2302:
2295:
2288:
2280:
2271:
2270:
2247:
2244:
2243:
2240:
2239:
2237:
2236:
2231:
2226:
2221:
2215:
2213:
2209:
2208:
2206:
2205:
2196:
2191:
2186:
2181:
2175:
2173:
2169:
2168:
2166:
2165:
2160:
2154:
2152:
2143:
2139:
2138:
2136:
2135:
2130:
2125:
2120:
2115:
2110:
2105:
2100:
2095:
2090:
2085:
2079:
2077:
2071:
2070:
2068:
2067:
2062:
2057:
2052:
2046:
2044:
2040:
2039:
2037:
2036:
2031:
2026:
2021:
2016:
2011:
2006:
2001:
1996:
1991:
1986:
1981:
1975:
1973:
1969:
1968:
1966:
1965:
1960:
1955:
1950:
1945:
1940:
1935:
1930:
1924:
1922:
1918:
1917:
1915:
1914:
1909:
1904:
1899:
1894:
1889:
1883:
1881:
1877:
1876:
1869:
1867:
1865:
1864:
1859:
1854:
1849:
1843:
1837:
1831:
1825:
1823:
1819:
1818:
1811:
1810:
1803:
1796:
1788:
1782:
1781:
1771:
1766:
1758:
1757:External links
1755:
1752:
1751:
1726:
1701:
1676:
1654:
1632:
1607:
1577:
1558:
1537:
1506:
1488:
1476:
1450:
1439:on 9 June 2010
1424:
1402:
1377:
1352:
1324:
1298:
1277:
1255:
1233:
1208:
1180:
1162:
1144:
1119:
1101:
1079:
1053:
1035:
1009:
984:
957:
956:
954:
951:
950:
949:
944:
939:
934:
932:Java Web Start
929:
924:
919:
913:
912:
896:
893:
880:
877:
860:
857:
848:
845:
803:
800:
793:
792:
748:
746:
739:
733:
730:
715:
712:
675:
672:
664:
661:
660:
659:
655:
651:
648:
637:
634:
620:
619:
578:
576:
569:
563:
560:
559:
558:
551:
543:
535:
532:
525:
514:
506:
495:
483:
480:
414:
411:
400:Java Web Start
395:
392:
367:user interface
344:
341:
274:
271:
235:cross-platform
59:Mandelbrot set
15:
9:
6:
4:
3:
2:
2493:
2482:
2479:
2477:
2476:Java platform
2474:
2472:
2469:
2468:
2466:
2451:
2448:
2446:
2443:
2441:
2438:
2436:
2433:
2429:
2426:
2425:
2424:
2421:
2419:
2416:
2414:
2411:
2409:
2406:
2405:
2403:
2399:
2393:
2390:
2388:
2385:
2384:
2382:
2378:
2370:
2367:
2365:
2362:
2360:
2357:
2356:
2355:
2352:
2350:
2347:
2345:
2342:
2340:
2337:
2333:
2330:
2329:
2328:
2325:
2323:
2320:
2319:
2317:
2313:
2308:
2301:
2296:
2294:
2289:
2287:
2282:
2281:
2278:
2268:
2263:
2257:
2256:
2245:
2235:
2232:
2230:
2227:
2225:
2222:
2220:
2219:James Gosling
2217:
2216:
2214:
2210:
2204:
2200:
2197:
2195:
2192:
2190:
2187:
2185:
2182:
2180:
2177:
2176:
2174:
2172:Organizations
2170:
2164:
2161:
2159:
2156:
2155:
2153:
2151:
2147:
2144:
2140:
2134:
2131:
2129:
2126:
2124:
2121:
2119:
2116:
2114:
2111:
2109:
2106:
2104:
2101:
2099:
2096:
2094:
2091:
2089:
2086:
2084:
2081:
2080:
2078:
2076:
2075:JVM languages
2072:
2066:
2063:
2061:
2058:
2056:
2053:
2051:
2048:
2047:
2045:
2041:
2035:
2032:
2030:
2027:
2025:
2022:
2020:
2017:
2015:
2012:
2010:
2007:
2005:
2002:
2000:
1997:
1995:
1992:
1990:
1989:GNU Classpath
1987:
1985:
1982:
1980:
1977:
1976:
1974:
1970:
1964:
1961:
1959:
1956:
1954:
1951:
1949:
1946:
1944:
1941:
1939:
1936:
1934:
1931:
1929:
1926:
1925:
1923:
1919:
1913:
1910:
1908:
1905:
1903:
1900:
1898:
1895:
1893:
1890:
1888:
1885:
1884:
1882:
1878:
1873:
1863:
1860:
1858:
1855:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1830:
1827:
1826:
1824:
1820:
1816:
1809:
1804:
1802:
1797:
1795:
1790:
1789:
1786:
1779:
1775:
1772:
1770:
1767:
1764:
1761:
1760:
1740:
1736:
1730:
1715:
1711:
1705:
1690:
1686:
1680:
1664:
1658:
1642:
1636:
1621:
1617:
1611:
1595:
1591:
1587:
1581:
1574:
1570:
1567:
1562:
1554:
1550:
1544:
1542:
1526:
1525:
1520:
1513:
1511:
1502:
1498:
1492:
1485:
1480:
1464:
1460:
1454:
1438:
1434:
1428:
1412:
1406:
1391:
1387:
1381:
1366:
1362:
1356:
1341:
1340:
1335:
1328:
1313:
1309:
1302:
1287:
1281:
1265:
1259:
1243:
1237:
1222:
1218:
1212:
1197:
1190:
1184:
1176:
1172:
1166:
1158:
1154:
1148:
1133:
1129:
1123:
1115:
1111:
1105:
1089:
1083:
1067:
1063:
1057:
1049:
1045:
1039:
1024:on 8 May 2013
1023:
1019:
1013:
998:
994:
988:
972:
968:
962:
958:
948:
945:
943:
940:
938:
935:
933:
930:
928:
925:
923:
920:
918:
915:
914:
910:
904:
899:
892:
890:
886:
876:
872:
870:
865:
856:
854:
844:
840:
838:
834:
829:
824:
820:
818:
814:
810:
799:
789:
786:
778:
775:November 2021
768:
764:
758:
757:
753:
747:
738:
737:
729:
726:
722:
711:
709:
705:
701:
697:
693:
689:
685:
681:
671:
669:
656:
652:
649:
646:
642:
638:
635:
631:
627:
626:
625:
616:
613:
605:
595:
591:
585:
584:
579:This section
577:
573:
568:
567:
562:Disadvantages
556:
552:
548:
544:
541:
536:
533:
530:
526:
523:
519:
515:
511:
507:
504:
500:
496:
493:
489:
488:
487:
479:
477:
472:
453:
427:element. The
421:
410:
408:
403:
401:
391:
389:
385:
380:
377:
370:
368:
364:
360:
356:
352:
351:
340:
338:
334:
330:
326:
322:
317:
314:
312:
308:
304:
299:
294:
292:
288:
284:
280:
270:
268:
264:
260:
256:
252:
248:
244:
240:
236:
231:
229:
225:
221:
217:
213:
208:
206:
202:
198:
194:
190:
186:
182:
177:
175:
171:
166:
164:
160:
156:
152:
148:
143:
141:
137:
136:Java bytecode
133:
129:
125:
121:
117:
111:
106:
99:
94:
87:
83:
78:
71:
66:
60:
55:
47:
40:
36:
31:
23:
19:
2386:
2253:
1927:
1848:(Enterprise)
1742:. Retrieved
1738:
1729:
1717:. Retrieved
1713:
1704:
1692:. Retrieved
1689:Informit.com
1688:
1679:
1667:. Retrieved
1657:
1645:. Retrieved
1635:
1623:. Retrieved
1619:
1610:
1598:. Retrieved
1594:the original
1580:
1561:
1553:the original
1528:. Retrieved
1522:
1500:
1491:
1479:
1467:. Retrieved
1463:Ars Technica
1462:
1453:
1441:. Retrieved
1437:the original
1427:
1415:. Retrieved
1405:
1393:. Retrieved
1389:
1380:
1368:. Retrieved
1364:
1355:
1343:. Retrieved
1337:
1327:
1315:. Retrieved
1311:
1301:
1289:. Retrieved
1280:
1268:. Retrieved
1258:
1246:. Retrieved
1236:
1224:. Retrieved
1220:
1211:
1199:. Retrieved
1195:
1183:
1174:
1165:
1156:
1147:
1135:. Retrieved
1131:
1122:
1113:
1104:
1092:. Retrieved
1082:
1072:25 September
1070:. Retrieved
1066:the original
1056:
1048:the original
1038:
1026:. Retrieved
1022:the original
1012:
1000:. Retrieved
996:
987:
977:21 September
975:. Retrieved
971:the original
961:
882:
879:Alternatives
873:
871:components.
866:
862:
850:
841:
825:
821:
809:class loader
805:
796:
781:
772:
750:
717:
698:from JNI to
687:
683:
677:
666:
623:
608:
599:
588:Please help
583:verification
580:
529:Google Earth
492:web browsers
485:
473:
454:
416:
407:Java Servlet
404:
397:
381:
371:
348:
346:
318:
315:
307:news tickers
295:
276:
232:
209:
178:
167:
144:
116:Java applets
115:
114:
18:
2413:Java OpenGL
2401:Open-source
2387:Java applet
2359:SwingWorker
2150:Conferences
1857:Android SDK
1669:28 February
1647:28 February
1317:26 December
885:WebAssembly
859:Self-signed
833:DoS attacks
813:native code
602:August 2015
355:file system
291:check boxes
283:mouse input
205:SmartEiffel
159:web browser
153:(JVM) in a
39:.pdb format
2465:Categories
2229:Urs Hölzle
2118:Processing
1846:Jakarta EE
1842:(Standard)
1443:14 January
1196:Oracle.com
1114:Oracle.com
1094:5 December
953:References
889:JavaScript
752:neutrality
482:Advantages
359:web server
331:interface
329:JavaScript
212:JavaScript
174:deprecated
82:World Wind
2450:swingLabs
2142:Community
2088:BeanShell
2004:Hibernate
1979:Blackdown
1912:Maxine VM
1852:Java Card
1822:Platforms
1744:6 October
1714:Wiley.com
1590:Microsoft
1524:JavaWorld
1339:JavaWorld
1291:15 August
1270:15 August
1248:15 August
763:talk page
725:antitrust
708:trademark
547:untrusted
337:mouseover
323:, modern
2440:Qt Jambi
2255:Category
1933:Servlets
1719:17 March
1694:22 March
1665:. Oracle
1643:. Oracle
1625:22 March
1600:22 March
1569:Archived
1501:Java.com
1469:15 April
1395:22 March
1370:22 March
1226:22 March
1201:22 March
1137:22 March
1090:. Oracle
1002:22 March
895:See also
802:Unsigned
756:disputed
732:Security
658:removed.
633:plug-in.
388:runtimes
363:embedded
273:Overview
147:web page
140:bytecode
132:compiles
2481:Web 1.0
2349:Java 3D
2344:Java 2D
2309:desktop
2258:
2158:JavaOne
2133:Oxygene
2093:Clojure
2043:History
2034:WildFly
2029:TopLink
2014:Jazelle
2009:IcedTea
1999:Harmony
1984:Eclipse
1963:Modules
1958:Pack200
1938:MIDlets
1928:Applets
1897:OpenJDK
1862:GraalVM
1840:Java SE
1836:(Micro)
1834:Java ME
1530:13 July
1417:14 June
1345:13 July
1028:29 July
917:ActiveX
869:ActiveX
811:, call
688:java.io
645:Android
630:plug-in
550:agreed.
540:Java SE
520:to the
499:plug-in
350:sandbox
311:WYSIWYG
287:buttons
263:Android
247:FreeBSD
239:clients
197:NetRexx
155:process
2428:libGDX
2408:JavaFX
2212:People
2163:Devoxx
2113:Kotlin
2108:Jython
2098:Groovy
2024:Struts
2019:Spring
1907:JavaFX
1887:Squawk
1390:W3.org
1365:W3.org
937:JavaFX
847:Signed
686:, and
522:client
518:server
510:cached
469:object
465:applet
461:object
457:object
449:object
445:applet
437:object
425:object
420:applet
220:canvas
201:Eiffel
189:Pascal
181:Jython
98:access
86:OpenGL
2354:Swing
2128:Scala
2123:Rhino
2103:JRuby
1192:(PDF)
947:WebGL
817:stack
721:Swing
476:NPAPI
441:embed
433:embed
429:embed
382:Java
321:HTML5
259:Linux
255:macOS
224:WebGL
203:(via
199:, or
193:Scala
185:JRuby
170:NPAPI
130:that
80:NASA
70:chess
2315:APIs
2307:Java
2083:Java
1746:2020
1721:2017
1696:2022
1671:2014
1649:2014
1627:2022
1602:2022
1532:2020
1471:2016
1445:2010
1419:2013
1397:2022
1372:2022
1347:2020
1319:2021
1293:2015
1272:2015
1250:2015
1228:2022
1203:2022
1139:2022
1096:2023
1074:2009
1030:2013
1004:2022
979:2009
887:and
749:The
704:DCOM
447:and
439:and
386:and
376:.jar
327:and
279:HTML
257:and
251:Unix
124:Java
118:are
96:Web
1994:GWT
1948:JSF
1943:JSP
1829:JVM
1778:JDK
828:CPU
700:RNI
692:RMI
668:Sun
643:or
641:iOS
592:by
545:An
333:DOM
325:CSS
309:or
289:or
163:Sun
134:to
2467::
2201:,
1737:.
1712:.
1687:.
1618:.
1588:.
1540:^
1521:.
1509:^
1499:.
1461:.
1388:.
1363:.
1336:.
1310:.
1219:.
1194:.
1173:.
1155:.
1130:.
1112:.
995:.
405:A
369:.
269:.
253:,
249:,
245:,
195:,
191:,
187:,
183:,
142:.
2299:e
2292:t
2285:v
1807:e
1800:t
1793:v
1776:(
1748:.
1723:.
1698:.
1673:.
1651:.
1629:.
1604:.
1534:.
1473:.
1447:.
1421:.
1399:.
1374:.
1349:.
1321:.
1295:.
1274:.
1252:.
1230:.
1205:.
1177:.
1159:.
1141:.
1116:.
1098:.
1076:.
1032:.
1006:.
981:.
788:)
782:(
777:)
773:(
769:.
759:.
615:)
609:(
604:)
600:(
586:.
72:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.