Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

Fichier source, compilation et machine virtuelle

Le fichier source d'un programme écrit en Java est un simple fichier texte dont l'extension est par convention .java.
Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa plus simple expression, sans mise en forme particulière ou caractères spéciaux, c'est-à-dire qu'il contient uniquement les caractères ASCII de base.

Lorsque le programme est prêt à être "essayé", il s'agit de le compiler (le traduire en langage machine) à l'aide d'un compilateur. Toutefois, contrairement aux langages compilés traditionnels, pour lesquels le compilateur crée un fichier binaire directement exécutable par un processeur donné (c'est-à-dire un fichier binaire contenant des instructions spécifiques à un processeur), le code source Java est compilé en un langage intermédiaire (appelé pseudo-code ou bytecode) dans un fichier portant le même nom que le fichier source à l'exception de son extension (.class).

Cette caractéristique est majeure, car c'est elle qui fait qu'un programme écrit en Java est portable, c'est-à-dire qu'il ne dépend pas d'une plate-forme donnée. En réalité le code intermédiaire n'est exécutable sur aucune plate-forme sans la présence d'une machine virtuelle, un interpréteur (la machine virtuelle est d'ailleurs parfois appelée interpréteur Java) tournant sur une plate-forme donnée, et capable d'interpréter le code intermédiaire.

Ainsi, pour peu qu'une plate-forme (windows 95, Unix, Linux, Amiga, ...) possède une machine virtuelle fonctionnant sous son système, celle-ci est capable d'exécuter n'importe quelle application Java!

De cette façon, l'ensemble des navigateurs permettant d'utiliser des applets possèdent une machine virtuelle...

Typologie

La manière d'écrire les choses en Java est importante. Le langage Java est par exemple sensible à la casse (en anglais case sensitive), entendez par là qu'un nom contenant des majuscules est différencié du même nom écrit en minuscules. Ainsi, les spécifications du langage Java précisent que la fonction principale doit être appelée main() et non Main() ou MAIN().
D'autre part, toute instruction se termine par un point-virgule.

Applications et Applets

Java permet de créer deux types de programmes :

  • Les applications: programmes tels qu'on les connaît, c'est-à-dire s'exécutant dans le système d'exploitation à condition d'avoir installé une machine virtuelle. Voici ce à quoi ressemble une application Java :
    public class Nom_du_programme {
       public static void main (String args[]){
       	System.out.println("Hello World");
    
       }
    }
  • Les applets (prononcez Applettes, et traduisez Appliquettes, le nom grotesque donné en français) : Il s'agit de petites applications destinées à fonctionner sur un navigateur. Ainsi une applet a un champ d'action beaucoup plus réduit qu'une application pour des raisons de sécurité (une applet ne peut par exemple pas accéder au système sur lequel elle s'exécute...). Voici un exemple d'applet :
    public class Nom_de_l_applet extends java.applet.Applet {
       public void paint (Graphics g){
    	g.drawString("Hello World",20,40);
    
       }
    }

Ajout de commentaires

Lorsqu'un programme devient long et compliqué il peut être intéressant (il est même conseillé) d'ajouter des lignes de commentaires dans le programme, c'est-à-dire des portions du fichier source qui ont pour but d'expliquer le fonctionnement du programme sans que le compilateur ne les prennent en compte (car il génèrerait une erreur).

Pour ce faire, il est possible d'utiliser des balises qui vont permettre de délimiter les explications afin que le compilateur les ignore et passe directement à la suite du fichier.
Ces délimiteurs sont /* et */. Un commentaire sera donc noté de la façon suivante :

/* Voici un commentaire! */

Il y a toutefois quelques règles à respecter :

  • Les commentaires peuvent être placés n'importe où dans le fichier source
  • Les commentaires ne peuvent contenir le délimiteur de fin de commentaire (*/)
  • Les commentaires ne peuvent être imbriqués
  • Les commentaires peuvent être écrits sur plusieurs lignes
  • Les commentaires ne peuvent pas couper un mot du programme en deux

Le langage permet aussi de mettre toute la fin d'une ligne en commentaire en utilisant le double slash (//). Tout ce qui se situe à droite de ce symbole sera mis en commentaire.

Enfin, un dernier type de commentaires permet de documenter une application, de telle façon que le programme JavaDoc (fourni avec le JDK, Java Development Kit, le kit permettant de compiler du Java), puisse créer des documents HTML à partir de l'application afin de la documenter. Ces commentaires, vus comme des commentaires normaux par Java, sont repérés par les délimiteurs /** et */.

Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Java - Caractéristiques du langage » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Introduction aux Java Server Pages Présentation des Java Server Pages Les JSP (Java Server Pages) sont un standard permettant de développer des applications Web interactives, c'est-à-dire dont le contenu est dynamique. C'est-à-dire qu'une page web JSP (repérable par l'extension... www.commentcamarche.net/contents/jsp/jspintro.php3
Java.lang.NullPointerException (Résolu) Bonjour, je débute en Java, je suis tombé sur la fameuse java.lang.NullPointerException mais que dois faire pour régler ce problème? Je sais certainement qu'un pointeur ne dois pointer justement sur rien, ou qu'il existe un pb d'indice, mais en... www.commentcamarche.net/forum/affich-4647845-java-lang-nullpointerexception
Java.lang.noclassdeffounderror Bonjour, J'ai un problème à chaque fois que j'execute un programme Java en ligne de commandes : j'obtiens Java.lang.noclassdeffounderror ... Qelqu'un a-t-il une solution, merci d'avance Véronique www.commentcamarche.net/forum/affich-50409-java-lang-noclassdeffounderror
[Programmation] Comment débuter, quel langage?Comment débuter, quel langage? Introduction Ceux que l'on peut utiliser Delphi/Pascal Java Python .Net Smalltalk Ceux que l'on peut utiliser à la rigueur C/C++ PHP Ada Lisp/Caml/... Ceux que l'on peut ne pas utiliser www.commentcamarche.net/faq/sujet-457-programmation-comment-debuter-quel-langage
Exception in thread "main" java.lang.NoCBonjour, j ai une erreur "Exception in thread "main"java.lang.NoClassDefFoundError:" et je m en sors pas..Si quelqu un a une idee.. j ai installe Java Runtime Environment mais quand je test des java classes en retour j ai le message d erreur... www.commentcamarche.net/forum/affich-2261404-exception-in-thread-main-java-lang-noc
Java lang objectBonjour lors du demarrage un message d erreur apparait : wj view impossible de localiser la classe java/lang/object suis sous windows millenium et deja supprimer et retelecharger java . J ai aussi ad ware pour eliminer les spyware et j ai aussi... www.commentcamarche.net/forum/affich-1171295-java-lang-object
Java.lang.NoClassDefFoundError: org/apache/coSalut. J'ai un probleme avec les Servlet de WebServices deployes sur Tomcat. 10:39:50,857 ERROR [Service]:250 - "Servlet.service()" pour la servlet Service a généré une exception java.lang.NoClassDefFoundError:... www.commentcamarche.net/forum/affich-3329545-java-lang-noclassdeffounderror-org-apache-co
JavaHistoire de Java Java est un langage objet ressemblant au langage C++. Il a été mis au point en 1991 par la firme Sun Microsystems. Le but de Java à l'époque était de constituer un langage de programmation pouvant être intégré dans les appareils... www.commentcamarche.net/contents/java/javaintro.php3
Java - Les types de donnéesLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et... www.commentcamarche.net/contents/java/javatype.php3
Java: les variablesLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans... www.commentcamarche.net/contents/java/javavar.php3