Menu

2013-09-25  Edit

crim.fr, prof java

Présentation du cours

Première formalité

Après s'être inscrit sur la liste javacrim-coop, envoyer un mail sur la liste (destinataire : javacrim-coop@lists.sourceforge.net) pour vous présenter :

  • Nom, prénom
  • formation antérieure
  • Langages de programmation connus, pratiqués et appréciés
  • Langues connues, pratiquées
  • Motivation pour le cours

Interprété/Compilé, “byte code”, machine virtuelle

Langages interprétés (Perl, PHP) / compilés (C, C++, Pascal). Problème de la portabilité d'un code compilé (ex: en C, .exe et .dll ne tournent pas sur un linux, *.so ne tournent pas sur un Windows). Une machine virtuelle spécifique à chaque système permet de s'abstraire des différences, en fournissant par ailleurs des commodités précieuses pour accélérer les développements (gestion de la mémoire). Le code compilé n'est plus de l'assembleur, mais du “bytecode” qui n'est pas directement exécuté par le processeur mais pas la machine virtuelle. Java et Python partagent la particularité d'être compilés et exécuté par une machine virtuelle.

Caractéristiques de Java

  • Langage objet généraliste
  • Multi plate-forme (write once, run anywhere) : Windows, Mac, Linux, Unix, téléphones portables
  • Gestion automatique de la mémoire
  • Langage avec garde fou (exceptions, stacktrace)
  • Riche bibliothèque standard (traitement des fichiers, réseau, IHM)
  • Gère l'UNICODE nativement

Vérifier l'installation du JDK

  • Ouvrir une fenêtre de commande :
    • Sous Windows : Menu Démarrer -> Exécuter... -> Tapez "cmd" puis ENTREE
    • Sous Linux : Cherchez dans les menus un programme nommé "Terminal"
  • Tapez la commande suivante :
    java -version
  • Si celle-ci indique la version de la machine virtuelle Java, tout va bien
  • Tapez ensuite la commande suivante :
    javac -version
  • Si celle-ci indique la version du compilateur Java, tout va bien
  • Vous êtes prêts à travailler !

Note : nous travaillerons cette année avec Java en version 1.7

  • Sinon, vérifiez que le JDK a bien été installé sur le disque en cherchant ...
    • Sous Windows, dans un dossier C:\Program Files\Java...
    • Sous Linux, dans un dossier /usr/lib/jvm/...
  • les fichiers suivants (dans un sous-dossier nommé "bin") :

    • Sous Windows : java.exe, javac.exe
    • Sous Linux : java, javac
  • Si vous disposez de java(.exe) et pas de javac(.exe), c'est que vous avez le JRE (Java Runtime Environment) d'installé mais
    pas le JDK (Java Development Kit) => § Installer le JDK

  • Sinon, c'est juste un problème de chemin

Configurer le chemin

Sous Windows :

  • Ouvrir un explorateur de fichier (Touche Windows + E)
  • Clic droit sur le poste de travail, choisir le menu Propriété
  • Sélectionner l'onglet Avancé
  • Cliquer sur le bouton "Variables d'environnement"
  • Ajouter une variable d'environnement utilisateur nommé JAVA_HOME et dont la valeur est le chemin du dossier d'installation de Java (ex : C:\Program Files\Java\jdk1.7.0_40)
  • Modifier la variable d'environnement utilisateur nommée PATH pour y ajouter la chaîne "%JAVA_HOME%\bin;" en début de ligne
  • Cliquer sur Ok pour prendre en compte les modifications
  • Fermer la fenêtre de commande ouverte et en ouvrir une nouvelle, tester que la configuration a bien été prise en compte, en tapant la commande :
    javac -version

Sous Linux :

  • Dans le fichier ~/.bashrc, ajouter les deux lignes suivantes (le nom du dossier d'installation de Java peut varier, ligne suivante à adapter) :
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-sun-1.7.0_40
    export PATH=$JAVA_HOME/bin:$PATH
  • lancer la commande suivante pour prendre en compte ces deux lignes :
    source ~/.bashrc
  • Vérifier que tout s'est bien passé en tapant la commande :
    javac -version

Installer le JDK

Instructions pour installer le JDK sur votre ordinateur personnel

Sous Windows

Sous Linux

  • En tant que root, installer le paquet "sun-java6-jdk" (selon la distribution utilisée, le nom du paquet peut différer)
  • cf. § Configurer le chemin

Documentation

  • Sur la page http://www.oracle.com/technetwork/java/javase/downloads/index.html, la documentation Javadoc peut être téléchargée sous forme d'une archive ZIP et installée sur son poste pour y accéder même sans connexion internet (chercher la ligne "Java SE 7 Documentation" et le bouton "DOWNLOAD" associé)
  • Une fois installée, le point d'entrée de la javadoc est le fichier api/index.html (à conserver en marque page dans votre navigateur)

TP1 : Premier programme Java

  • Créer un dossier 20130925
  • Créer un sous-dossier TP1
  • Au sein du dossier TP1, utiliser un éditeur (notepad++ sous Windows ou gedit sous Linux) pour créer un fichier nommé HelloWorld.java (attention à la casse) avec le contenu suivant
:::java
/**
 * Une classe Java minimale
 */
public class HelloWorld {

  /**
   * La méthode principale
   * @param args les paramètres de la ligne de commande (inutilisés ici)
   */
  public static void main(String args[]) {
    // Salut le monde (en anglais)
    System.out.println("Hello, World!");
  }
}
  • Sauvegarder le fichier source
  • Ouvrir une fenêtre de commande dans le dossier TP1 (ou utiliser la commande cd pour se déplacer dans le bon dossier)
  • Lancer la commande suivante de compilation :

javac HelloWorld.java

  • Si aucune erreur ne se produit, un fichier HelloWorld.class devrait apparaître dans le même dossier, sinon corriger l'erreur ou les erreurs et relancer la commande.
  • Pour exécuter le programme, lancer la commande :
java HelloWorld
  • Pour générer la javadoc de votre programme, lancer la commande :
javadoc HelloWorld.java
  • Vous pouvez lire la javadoc générée en ouvrant le fichier index.html dans un navigateur Web

Exercice

  • Créer une nouvelle classe BonjourLeMonde.java pour lui faire afficher "Bonjour le monde" dans les langues que vous connaissez.
  • Compiler le fichier (commande javac)
  • Exécuter la classe (commande java)
  • Générer la javadoc (commande javadoc)

Notes :
* Encodez dès maintenant vos fichiers en UTF-8 !!!
* Pour l'affichage de l'unicode dans une fenêtre de commande Windows :
* Utilisez une police TrueType (ex : LucidaConsole)
* utilisez la commande suivante pour passer en UTF-8 :

chcp 65001

TP2 : Structurer les choses

  • Créer un dossier TP2 au même niveau que TP1
  • Créer des sous-dossiers :
    • src/ (pour mettre les fichiers .java)
    • build/ (pour générer les fichiers .class)
    • doc/ (pour générer la javadoc)
    • bin/ (pour y placer des script pratiques)
    • dist/ (pour y placer un jar constitué des classes Java)
  • Copier le fichier HelloWorld.java du dossier TP1 au dossier TP2/src
  • Se placer dans le dossier TP2
  • Pour compiler, l'option -encoding UTF-8 est parfois nécessaire lorsque la langue système est configurée en ISO, alors que les fichiers .java doivent être en UTF-8
    • Sous Linux :
      javac -encoding UTF-8 -d build src/*.java
    • Sous Windows :
      javac -encoding UTF-8 -d build src\*.java
  • Pour exécuter :
    java -cp build HelloWorld
  • Pour générer la javadoc :
    • Sous Linux :
      javadoc -d doc src/*.java
    • Sous Windows :
      javadoc -d doc src\*.java

Scripts pratiques

Plutôt que de retaper les mêmes commandes à chaque étape, celles-ci peuvent être stockées dans des scripts à placer dans le dossier bin. Ces scripts et ce découpage en dossiers pourront être réutilisés à chaque projet.

Sous Windows

compile.bat

@echo off
javac -encoding UTF-8 -d build src\*.java

run.bat

@echo off
java -cp build %*

doc.bat

@echo off
javadoc -d doc src\*.java

dist.bat

@echo off
jar cvf dist\%1 -C build .

clean.bat

@echo off
del build /s /q
del dist /s /q
del doc /s /q

Ensuite, on se place dans le répertoire projet pour travailler et lancer les commandes.

Pour compiler :

bin\compile

Pour exécuter :

bin\run {nomdelaclasse}

Pour générer la javadoc :

bin\doc

Pour générer un fichier jar :

bin\dist {nomdufichier.jar}

Pour faire le ménage dans le projet

bin\clean

Sous Mac/Linux

compile.sh

1
2
#!/bin/sh
javac -encoding UTF-8  -d build src/*.java

run.sh

1
2
#!/bin/sh
java -cp build $*

doc.sh

1
2
#!/bin/sh
javadoc -d doc src/*.java

dist.sh

1
2
#!/bin/sh
jar cvf dist/$1 -C build .

clean.sh

1
2
#!/bin/sh
rm -fR build/* dist/* doc/*

Il faut ensuite rendre ces scripts exécutables :

chmod +x bin/*.sh

Ensuite, on se place dans le répertoire projet pour travailler et lancer les commandes.

Pour compiler :

bin/compile.sh

Pour exécuter :

bin/run.sh {nomdelaclasse}

Pour générer la javadoc :

bin/doc.sh

Pour générer un fichier jar :

bin/dist.sh {nomdufichier.jar}

Pour faire le ménage dans le projet

bin/clean.sh

TP3

  • Créer un dossier TP3 avec les dossiers vides suivants :
    • src
    • build
    • dist
    • doc
  • et le dossier bin avec son contenu copié du TP2

  • Écrire une nouvelle classe BonjourArg qui affiche "Bonjour Jacques !" lorsqu'on lui passe le paramètre "Jacques" :

  • Sous Windows :

    bin\run BonjourArg Jacques
  • Sous Mac/Linux :

    bin/run.sh BonjourArg Jacques
  • Indices :
    • L'opérateur de concaténation de chaîne est le caractère « + »
    • L'argument passé après le nom de la classe est placé dans le tableau args de la méthode main
    • Les indices des tableaux commencent à 0
  • Test : que se passe-t-il lorsque l'on ne passe pas de paramètre (exception)

Aller plus loin :

  • Tester la longueur du tableau pour afficher "Bonjour à vous" si aucun paramètre n'est passé
  • Utiliser la méthode toUpperCase() pour afficher le prénom passé en MAJUSCULES.

Pour la séance suivante


Related

Wiki: Home 2013-12-11 22:25:56.186231
Wiki: Home

Discussion

Anonymous
Anonymous

Add attachments
Cancel