2
28

Un pas en Java

Devenir un programmeur Java commence par l'installation de l'environnement de travail du développeur. Écrivez et compilez un premier programme indépendant, puis une première applette que vous pourrez exécuter dans un navigateur et vous serez définitivement sur la bonne voie.

Environnement de travail

Téléchargez la toute dernière version du Java Developer's Kit (JDK Standard Edition).

Sous Linux, installez le JDK dans /usr :

$ cd /usr
$ chmod 755 /downloads/jdk-*-linux-i586.bin
$ sudo /downloads/jdk-*-linux-i586.bin
$ ln -s jdk-* java

Le lien symbolique permettra de toujours faire référence au répertoire /usr/java, quelle que soit la version du JDK qui a été installée.

Sous Windows, créez un dossier nommé C:\Program Files\Java, lancez l'installateur jdk-*-windows-i586.exe et demandez-lui de copier le paquet dans ce dossier. Renommez le dossier jdk-* jdk.

Téléchargez la documentation jdk-*-docs.zip et installez-la dans /usr/java/docs sous Linux, C:\Program Files\Java\docs sous Windows. Cherchez la page "The Java Tutorials" sur le site. Étudiez les didacticiels régulièrement, tout particulièrement l'introduction à Swing. Vous pouvez aussi les télécharger et les copier dans /usr/java/tutorials sous Linux, C:\Program Files\Java\tutorials sous Windows.

Créez un répertoire appelé Java dans votre répertoire principal pour stocker votre travail.

Sous Linux, assurez-vous que l'éditeur standard gedit est bien installé. Sous Windows, installez Notepad++ ou TextPad. NOTE : Vous pouvez aussi vous servir d'Eclipse après avoir installé la version pour développeurs Java SE.

Sous Linux, ajoutez les lignes suivantes au fichier ~/.bashrc :

# set PATH and JAVA_HOME for Java
if [ -d /usr/java/bin ] ; then
    PATH=/usr/java/bin:"${PATH}"
    export JAVA_HOME=/usr/java
fi

Démarrez un nouveau terminal et vérifiez que les commandes du JDK sont accessibles :

$ java -version
java version "1.6.*"
Java(TM) SE Runtime Environment (build 1.6.*)

Sous Windows, créez un fichier appelé env.bat dans votre dossier Java avec le contenu suivant :

  1. @echo off
  2.  
  3. set PATH=%SystemRoot%\system32;%SystemRoot%
  4.  
  5. echo Setting environment for Java (PATH JAVA_HOME).
  6. set JAVA_HOME=%ProgramFiles%\Java\jdk
  7. set PATH=%JAVA_HOME%\bin;%PATH%
  8.  
  9. echo Setting environment for Ant (PATH ANT_HOME).
  10. set ANT_HOME=%ProgramFiles%\Java\ant
  11. set PATH=%ANT_HOME%\bin;%PATH%

Ce fichier regroupe une série de commandes qui initialisent l'environnement de travail.

Créez un raccourci dans le même dossier. Configurez la cible pour qu'elle exécute l'ordre %comspec% /k env.bat. Cette ligne lance le processeur de commandes en lui demandant de commencer par exécuter le contenu du fichier env.bat. Renommez le raccourci Command Prompt.

Pour lancer le processeur de commandes avec l'environnement de travail Java, double-cliquez sur Command Prompt :

Setting environment for Java (PATH JAVA_HOME).
Setting environment for Ant (PATH ANT_HOME).
C:\Documents and Settings\frasq\Mes documents\Java>

Vérifiez que les commandes du JDK sont accessibles :

C:\Documents and Settings\frasq\My documents\Java>java -version
java version "1.6.*"
Java(TM) SE Runtime Environment (build 1.6.*)
Java HotSpot(TM) Client VM (build 16.*, mixed mode, sharing)
Premier programme

Débutez par le programme "Hello", un classique qui vous permettra de vous assurer que tout l'environnement de travail est opérationnel. Créez le dossier Hello dans votre dossier Java.

Sous Linux :

$ cd
$ cd Java
$ mkdir Hello

Éditez le fichier HelloWorldApp.java suivant :

  1. public class HelloWorldApp {
  2.     public static void main(String[] args) {
  3.         System.out.println("Hello World!");
  4.     }
  5. }

NOTE : Ne tapez pas les numéros de ligne.

Pour exécuter ce programme, commencez par le compiler :

$ javac HelloWorldApp.java

Le compilateur Java javac génère le fichier HelloWorldApp.class. Ce fichier contient le code pour la JVM (Java Virtual Machine), le programme qui interprète le code compilé et l'exécute.

Pour exécuter le programme compilé, entrez la commande suivante :

$ java HelloWorldApp
Hello World!

Remarquez que l'extension .class du fichier n'est pas spécifiée. NOTE : Passez HelloWorldApp.class à l'interpréteur lui demanderait d'exécuter la méthode main de la classe interne class définie dans la classe HelloWorldApp.

Première applette

Une applette est un programme qui est exécuté par un greffon dans un navigateur. Créez un fichier appelé HelloWorld.java :

  1. import java.applet.Applet;
  2. import java.awt.Graphics;
  3.  
  4. public class HelloWorld extends Applet {
  5.     public void paint(Graphics g) {
  6.         g.drawString("Hello world!", 50, 25);
  7.     }
  8. }

Ce fichier définit une classe HelloWorld qui hérite de la classe Applet. La méthode paint est automatiquement appelée lorsque le programme doit dessiner le contenu de la fenêtre. Remarquez qu'une applette n'a pas de méthode main.

Compilez le programme :

$ javac HelloWorld.java

Pour exécuter l'applette dans un navigateur, créez un fichier HelloWorld.html :

  1. <html>
  2. <head>
  3. <title>Hello Applet</title>
  4. </head>
  5. <body>
  6. <applet code="HelloWorld.class" width="150" height="25"></applet>
  7. </body>
  8. </html>

La balise <applet> demande au navigateur d'exécuter le programme à l'adresse donnée par l'attribut code. Remarquez que l'emplacement du code est relatif à l'emplacement du document.

Ouvrez HelloWorld.html avec un navigateur ou passez-lui le nom du fichier en argument :

$ firefox HelloWorld.html

Une autre possibilité est d'utiliser le programme appletviewer fourni avec le JDK :

$ appletviewer HelloWorld.html

Ajoutez la ligne suivante au tout début du fichier HelloWorld.java :

  1. // <applet code="HelloWorld.class" width="150" height="50"></applet>

Cette ligne, qui est mise en commentaire pour le compilateur Java, est identique à celle qui décrit l'applet dans HelloWorld.html.

Pour lancer l'applette, entrez la commande suivante :

$ appletviewer HelloWorld.java

La première ligne du fichier source est lue par appletviewer qui l'exécute comme un navigateur. Nul besoin d'éditer un fichier HTML pour faire un simple test.

Première livraison

Pour empaqueter tous les fichiers d'une application dans un seul fichier, créez d'abord un fichier manifeste appelé HelloWordApp.mf :

  1. Manifest-Version: 1.1
  2. Main-Class: HelloWorldApp

La clause Main-Class donne le nom de la classe qui définit la méthode main, le point d'entrée du programme.

Créez un .jar avec le manifeste et tous les fichiers de l'application :

$ javac HelloWorldApp.java
$ jar -cmf HelloWorldApp.mf HelloWorldApp.jar HelloWorldApp.class

Pour lister le contenu du .jar, exécutez la commande suivante :

$ jar -tf HelloWorldApp.jar
META-INF/
META-INF/MANIFEST.MF
HelloWorldApp.class

L'archive, en fait un répertoire dans un fichier, peut contenir des fichiers .class et tout autre type de fichiers comme des paramètres de configuration, des messages, des images ou des sons.

Pour exécuter le .jar, passez le fichier avec l'option -jar à l'interprète :

$ java -jar HelloWorldApp.jar

Vous pouvez aussi empaqueter une applette et tous ses fichiers dans un .jar. Le téléchargement prendra un peu plus de temps mais tous les fichiers nécessaires seront là quand le programme commencera à interagir avec l'utilisateur. Créez le manifeste :

  1. Manifest-Version: 1.1
  2. Main-Class: HelloWorld

Placez tous les fichiers dans un .jar :

$ javac HelloWorld.java
$ jar -cmf HelloWorld.mf HelloWorldjar.jar HelloWorld.class

Pour exécuter l'applette dans un navigateur, créez un fichier appelé HelloWorldJar.html :

  1. <html>
  2. <head>
  3. <title>Hello Archive</title>
  4. </head>
  5. <body>
  6. <applet archive="HelloWorldApp.jar" width="150" height="25"></applet>
  7. </body>
  8. </html>

Le nom du .jar est spécifié par l'attribut archive.

$ firefox HelloWorldJar.html
Utilisation de Ant

Ant permet d'automatiser la génération d'une application.

Télécharger Ant.

Sous Linux, installez l'outil dans /usr :

$ cd /usr
$ sudo tar -jxvf /downloads/apache-ant-*-bin.tar.bz2
$ mv apache-ant-* ant-*
$ ln -s ant-* ant

Sous Windows, installez l'outil dans C:\Program Files\Java. Renommez le dossier apache-* ant.

Sous Linux, ajoutez les lignes suivantes au fichier ~/.bashrc :

# set PATH for Apache Ant
if [ -d /usr/ant/bin ] ; then
    PATH=/usr/ant/bin:"${PATH}"
    export ANT_HOME=/usr/ant
fi

Démarrez un nouveau terminal et vérifiez que la commande ant est accessible :

$ ant -version
Apache Ant version * compiled on *

Sous Windows, vérifiez que le fichier env.bat définit la variable d'environnement ANT_HOME et ajoute le dossier C:\Program Files\Java\ant\bin à votre PATH.

Ajoutez le fichier XML build.xml à votre projet :

  1. <?xml version="1.0"?>
  2. <!-- +- Builds an application and an applet which display "Hello World!". -->
  3. <project name="Hello" default="help" basedir=".">
  4.  
  5.     <property name="appsrc" value="HelloWorldApp.java" />
  6.     <property name="appletsrc" value="HelloWorld.java" />
  7.  
  8.     <target name="help">
  9.         <echo message="Build file for section 'First Steps'" />
  10.         <echo message="Enter 'ant -projecthelp' for more help" />
  11.     </target>
  12.  
  13.     <target name="compile" depends="app, applet"
  14.         description="Compiles the application and the applet">
  15.     </target>
  16.  
  17.     <target name="app">
  18.         <javac srcdir="." includes="${appsrc}" deprecation="on" />
  19.     </target>
  20.  
  21.     <target name="applet">
  22.         <javac srcdir="." includes="${appletsrc}" deprecation="on" />
  23.     </target>
  24.  
  25.     <target name="test" depends="compile" description="Runs all the built test programs">
  26.         <echo message="Running the application..." />
  27.         <java fork="yes" classname="HelloWorldApp">
  28.         </java>
  29.         <echo message="To test the applet, load 'HelloWorld.html' in a navigator..." />
  30.     </target>
  31.  
  32.     <target name="clean" description="Deletes all generated files">
  33.         <delete>
  34.             <fileset dir="." includes="*.class" />
  35.         </delete>
  36.     </target>
  37. </project>

Essayez de reconstruire tout le projet :

$ ant clean test
clean:

app:
    [javac] Compiling 1 source file

applet:
    [javac] Compiling 1 source file

compile:

test:
     [echo] Running the application...
     [java] Hello World!
     [echo] To test the applet, load 'HelloWorld.html' in a navigator...

Pour lister toutes les actions possibles, passez le paramètre -projecthelp à ant :

$ ant -projecthelp
Buildfile: build.xml

Main targets:

 clean    Deletes all generated files
 compile  Compiles the application and the applet
 test     Runs all the built test programs
Default target: help

Commentaires

Pour ajouter un commentaire, cliquez ici.