# Applet Java

Un applet Java est un applet, fourni aux utilisateurs sous la forme de bytecode Java. Cette technologie est dépréciée depuis la version 9 de java. Un applet Java peut fonctionner dans un navigateur web, grâce à une machine virtuelle Java (JVM), ou dans l'AppletViewer de Sun, un outil permettant de tester les applets Java. Les applets Java ont été introduits dans la première version du langage, de 1995. Les applets Java sont la plupart du temps écrits en langage Java, mais ils peuvent également être écrits dans n'importe quel langage qui se compile en bytecode, comme Jython, Groovy ou encore Scala.
Les applets sont utilisés pour fournir au sein d'applications Web des fonctionnalités interactives qui ne peuvent pas être fournies par le langage HTML. Étant donné que le bytecode Java est multiplate-forme, les applets Java peuvent être exécutés sur différentes plates-formes, dont Windows, Unix, Mac OS et Linux.
Beaucoup de développeurs Java influents, blogs et magazines recommandent l'utilisation de la technologie Java Web Start au lieu des applets Java.
Cette technologie est dépréciée (à ne plus utiliser) depuis la version 9 de java. Et à supprimer depuis la version 17 (2020) de Java. Elle n'est plus utilisable dans la majorité des navigateurs.

## Informations techniques

Les applets Java sont exécutés dans un environnement indépendant par la plupart des navigateurs, afin de les empêcher d'accéder aux données locales. Le code d'un applet est téléchargé depuis un serveur web et le navigateur lance l'applet dans la page HTML ou dans une nouvelle fenêtre. Un applet peut être affiché dans une page web en utilisant la balise HTML obsolète applet, ou l'élément recommandé object. Ces balises spécifient l'emplacement de l'applet.
Un applet Java hérite de la classe java.applet.Applet, ou dans le cas d'un applet Swing, de la classe javax.swing.JApplet. La classe doit réécrire certaines méthodes de la classe Applet afin de définir son comportement (Applet est une sous classe de Panel, qui est une sous classe de Container).

## Avantages

Un applet Java possède les avantages suivants :
* il est facile de faire fonctionner un applet sous Windows, Linux et Mac OS X
* un même applet peut fonctionner sur toutes les versions de Java installées. Cependant, dans le cas où l'applet nécessite une version plus récente de Java, le client devra attendre le téléchargement de la nouvelle version.
* les applets sont supportés par la plupart des navigateurs Web
* un applet peut être mis en cache par le navigateur, afin d'accélérer les consultations futures
* un applet peut avoir un accès complet à l'ordinateur client, si l'utilisateur l'autorise
* un applet permet de déplacer certaines opérations d'un serveur vers les clients

## Inconvénients

Un applet Java présente cependant les inconvénients suivants :
* Un plugin Java est nécessaire, qui n'est pas forcément installé sur tous les navigateurs ;
* Avant la version 6u12, Sun ne fournissait pas de version 64-bit de son plug-in, forçant les utilisateurs à utiliser un plugin 32 bits dans un navigateur 32 bits ;
* Un applet ne peut pas démarrer tant que la machine virtuelle Java n'est pas démarrée, ce qui peut entraîner un temps de latence important au premier lancement ;
* Un applet peut nécessiter une version spécifique de la machine virtuelle Java.

## Alternatives

Des techniques alternatives existent (par exemple, DHTML, Flash, et Microsoft Silverlight).
Une alternative aux applets pour développer des applications client pour Java est la technique Java Web Start, qui permet d'exécuter des applications en dehors du navigateur.
Il existe des outils open-source qui peuvent être utilisés pour convertir un applet en une application riche Java, ou en application native pour Windows ou Linux. Ce qui donne l'avantage de pouvoir lancer un applet Java en mode hors-ligne, ou en dehors d'un navigateur web.
Depuis la version 9, Java considère les applets comme dépréciés, et affichera un avertissement en cas d'utilisation.