<<<M1 - UE2

0 Rappels Java

Note : ce chapitre a pour objet de rappeler les notions essentielles pour la compilation et l'exécution des programmes Java en dehors d'Eclipse.

Eclipse est un outil formidable, mais il masque au programmeur la complexité relative de la compilation et l'exécution avec Java. Nous tentons donc de montrer dans ce chapitre comment procéder.

0.1. Organisation des sources

On crée un répertoire pour notre projet, par exemple projet :

mkdir projet
cd projet

On peut reprendre l'organisation d'Eclipse, qui est celle liée aux projets Java de manière générale. On crée deux répertoires principaux :

Eventuellement, si on utilise des librairies externes, on crée un répertoire lib dans lequel on placera les .jar

En Java, afin de séparer et identifier les classes, on crée des packages :

package com.public.server;

public class ServerHttp {
...
}

Au niveau de l'arborescence cela implique que le fichier ServerHttp.java sera placé dans le répertoire : src/com/public/server.

Voici un exemple d'arborescence :

rmi_example/
├── build
│   ├── client
│   │   ├── ComputeApplet$1.class
│   │   ├── ComputeApplet.class
│   │   └── ComputeClient.class
│   ├── common
│   │   ├── ComputeInterface.class
│   │   ├── InputData.class
│   │   └── Result.class
│   └── server
│       ├── ComputeImplementation.class
│       ├── ComputeServer.class
│       └── ComputeServerRegistryLaunch.class
├── build.xml
├── README
├── server.policy
└── src
    ├── client
    │   ├── compute_applet.html
    │   ├── ComputeApplet.java
    │   └── ComputeClient.java
    ├── common
    │   ├── ComputeInterface.java
    │   ├── InputData.java
    │   └── Result.java
    └── server
        ├── ComputeImplementation.java
        ├── ComputeServer.java
        └── ComputeServerRegistryLaunch.java

0.2. Compilation des sources

On se place dans le répertoire du projet :

cd projet

0.2.1. avec un fichier

javac -d build -cp src src/com/public/server/ServerHttp.java

Les options sont les suivantes :

0.2.2. avec plusieurs fichiers

Si il existe une hiérarchie de répertoires alors, on peut utiliser :

files=`find src -name "*.java" -print | tr '\n' ' '` && javac -d build -cp src $files

ou plus simplement :

find -name "*.java" | xargs javac -d build

0.2.3. librairies externes

Si on fait appel à une librairie externe (.jar) il faudra la spécifier dans le classpath, par exemple :

javac -d build -cp src:lib/logging.jar src/com/public/server/ServerHttp.java

0.3. Execution des fichiers objects : .class

On utilise le même principe que pour la compilation concernant le classpath, par contre on fait référence aux classes par leurs noms et le package dans lequel elles se trouvent :

java -cp build com.public.server.ServerHttp

Ici, on tente d'exécuter :

0.4. Automatisation de la compilation et l'exécution

On peut utiliser make pour automatiser la compilation et l'exécution, ou alors ant qui est un make au format XML dédié initialement à Java

Voici un exemple (build.xml) de fichier de compilation lié à ant (cf documentation) :


Warning: file_get_contents(ens/m1/info/ue2/build.xml): Failed to open stream: No such file or directory in /home/jeanmichel.richer/public_html/html_business.php on line 448
  1.