Présentation du cours
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). 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 widows). 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.
Unicode
Pour Windows, changer le "codepage", commande >chcp 65001
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 !
-
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 d'installé mais
pas le JDK => § Installer le JDK
-
Sinon, c'est juste un problème de 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.6.0_23)
- 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.6.0-sun-1.6.0.15
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 6 Documentation" et le bouton "DOWNLOAD" associé)
- Une fois installée, le point d'entrée de la javadoc est le fichier api/index.html
TP1 : Premier programme Java
- Créer un dossier 20121003
- Créer un sous-dossier TP1
- Au sein du dossier TP1, utiliser un éditeur (bloc-notes sous Windows ou Kate sous Linux) pour créer un fichier nommé HelloWorld.java (attention à la casse) avec le contenu suivant
/**
* 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
- 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 la langue de votre choix.
- Compiler le fichier (commande javac)
- Exécuter le fichier (commande java)
- Générer la javadoc (commande javadoc)
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 dossier 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\javacrim.jar -C build .
Sous Mac/Linux
compile.sh
| #!/bin/sh
javac -encoding UTF-8 -d build src/*.java
|
run.sh
| #!/bin/sh
java -cp build $*
|
doc.sh
| #!/bin/sh
javadoc -d doc src/*.java
|
dist.sh
| #!/bin/sh
jar cvf dist/javacrim.jar -C build .
|