INTRODUCTION A JAVA Chapitre 1 : Introduction Jean-Claude MARTIN LIMSI-CNRS - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - PLAN : 1. INTRODUCTION 2. LE LANGAGE JAVA 3. LE PAQUETAGE AWT 4. LES ENTREES-SORTIES 5. INTERNET, IMAGE, THREAD 6. PERSPECTIVES - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - BIBLIOGRAPHIE - Jean-Claude MARTIN - ch1: Introduction -
Bibliographie : les livres «papier» Pour débuter : Macary, J.F. & Nicolas, C. (1996) Programmation Java. Eyrolles. 236p. Stephen R. Davis (1996) Formation à Java. Microsoft Press. 412 p. Pour approfondir : Flanagan, D. (1997) Java in a nutshell (2nd edition). O’Reilly. 610p. Joshi, D. & Vorobiev, P. (1997) Migrating from Java 1.0 to Java 1.1. Ventana. ISBN 1-56604-686-6 - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Historique développé par SUN initialement prévu pour l’électroménager « Oak » en 1991, Java depuis 1995 création de JavaSoft en 1996 ouverture à Internet versions: 1995 : 1.0 1996 : 1.1 1997 : 1.1.5 1998 : 1.2 - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Qu'est-ce que "Java" ? une "plateforme" = langage orienté objet (API) + environnement d'exécution (machine virtuelle) - Jean-Claude MARTIN - ch1: Introduction -
Des points communs et des différences avec C et C++ - Jean-Claude MARTIN - ch1: Introduction -
Environnements de développement : le JDK Le JDK (Java Development toolKit) téléchargement gratuit (www.javasoft.com) version 1.1 depuis début 1997 pas un environnement intégré ligne de commande comprend le compilateur javac l’interpréteur java le débogeur jdb le générateur de documentation HTML javadoc - Jean-Claude MARTIN - ch1: Introduction -
Environnements de développement : le JDK Comprend aussi le visualisateur d’applet appletviewer l’archiveur jar le générateur de fichiers C javah le gestionnaire de clés digitales javakey l’interpréteur java runtime jre le désassembleur javap les outils pour appeler des méthodes distantes (RMI) - Jean-Claude MARTIN - ch1: Introduction -
Un premier exemple : Hello world ! en application Java Créer un fichier HelloAppli.java public class HelloAppli { public static void main (String args[]) { System.out.println ("HelloWorld!\n"); } Compilez C :\javac HelloAppli.java un fichier compilé est crée : HelloAppli.class ; autorisé après les accolades - Jean-Claude MARTIN - ch1: Introduction -
Compilation de HelloAppli - Jean-Claude MARTIN - ch1: Introduction -
Compilation de HelloAppli.java public class HelloAppli { public static void main (String args[]) { System.out.println ("Hello World !"); } 130 octets (EdText 4000) Compilateur JAVAC HelloAppli.class 0 getstatic #7 <Field java.io.PrintStream out> 3 ldc #1 <String "Hello World !"> 5 invokevirtual #8 <Method void println(java.lang.String)> 8 return ... 473 octets (EdText 3000) - Jean-Claude MARTIN - ch1: Introduction -
Interprétation et exécution de HelloAppli nom de la classe Exécutez C :\java HelloAppli - Jean-Claude MARTIN - ch1: Introduction -
Interprétation et exécution de HelloAppli sur PC / DOS HelloAppli.class 0 getstatic #7 <Field java.io.PrintStream out> 3 ldc #1 <String "Hello World !"> 5 invokevirtual #8 <Method void println(java.lang.String)> 8 return ... Système d’exploitation Windows PC Machine Virtuelle Java EXECUTION Interpréteur JAVA pour Windows / PC - Jean-Claude MARTIN - ch1: Introduction -
Hello World sur Silicon Graphics Le même fichier HelloAppli.class est utilisé ! - Jean-Claude MARTIN - ch1: Introduction -
Interprétation et exécution de HelloAppli sur Silicon Graphics HelloAppli.class 0 getstatic #7 <Field java.io.PrintStream out> 3 ldc #1 <String "Hello World !"> 5 invokevirtual #8 <Method void println(java.lang.String)> 8 return ... Fichier issu de la compilation sur PC Système d’exploitation Silicon / Unix Machine Virtuelle Java EXECUTION Interpréteur JAVA pour Silicon / Unix - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - LES APPLETS - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Internet, WEB et HTML Internet un réseau de réseau né dans les années 70 (ARPAnet) plusieurs services : Email, WEB... WEB système d’information hypertexte, graphique, multi-plateforme, distribué, dynamique, accédant a différents types d’informations sur Internet de manière interactive HTML un langage de description de documents (images, hyperliens) - Jean-Claude MARTIN - ch1: Introduction -
Application / Applets Environnement d’exécution s'exécute depuis le système d'exploitation : Dos, Unix Applet = «Application leight» ou Applette chargement possible à travers Internet s'exécute dans un navigateur : Netscape Navigator, InternetExplorer un utilitaire : appletviewer Nuances ... - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - HTML (HyperText Markup Language) <HTML> <HEAD> <TITLE> Exemple HTML </TITLE> </HEAD> <BODY> <H1>Exemple</H1> Ceci est un exemple de page HTML. </BODY> </HTML> - Jean-Claude MARTIN - ch1: Introduction -
Exemple HTML «classique» - Jean-Claude MARTIN - ch1: Introduction -
Consulter un fichier HTML (1) CLIENT SERVEUR Navigateur (2) url HTML (3) <HTML> <HEAD> <TITLE> Exemple HTML </TITLE> </HEAD> <BODY> <H1>Exemple</H1> Ceci est un exemple de page HTML. </BODY> </HTML> (4) - Jean-Claude MARTIN - ch1: Introduction -
Premier exemple d'applet : HelloApplet.java Créer un fichier HelloApplet.java import java.awt.Graphics ; import java.applet.Applet ; public class HelloApplet extends Applet { public void paint (Graphics g) g.drawString (" Hello World! ", 0, 100) ; } le compiler : javac HelloApplet.java => le fichier HelloApplet.class est crée on peut se passer des imports mais il faut alors mettre les noms complets - Jean-Claude MARTIN - ch1: Introduction -
Premier exemple d'applet : HelloApplet.html Créer un fichier HelloApplet.html : <HTML> <HEAD> <TITLE> Exemple HTML </TITLE> </HEAD> <BODY> <H1>Exécution de l'applet</H1> <APPLET code="HelloApplet.class" width=100 height=100> </APPLET> </BODY> </HTML> resize souvent interdit - Jean-Claude MARTIN - ch1: Introduction -
Exécution locale avec appletviewer - Jean-Claude MARTIN - ch1: Introduction -
Consulter un fichier HTML contenant une applet Java (1) CLIENT SERVEUR (2) url Navigateur SUN Machine Virtuelle Java PC HTML + .class (3) <HTML> <HEAD> <TITLE> Exemple HTML </TITLE> </HEAD> <BODY> <H1>Exécution de l'applet</H1> <APPLET code="HelloApplet.class" width=100 height=100> </APPLET> ... Système d’exploitation SUN / Unix 0 aload_1 1 ldc #1 <String " Hello World! "> 3 bipush 20 5 bipush 20 7 invokevirtual #6 <Method void ... 10 return 0 aload_1 1 ldc #1 <String " Hello World! "> 3 bipush 20 5 bipush 20 7 invokevirtual #6 <Method void ... 10 return 0 aload_1 1 ldc #1 <String " Hello World! "> 3 bipush 20 5 bipush 20 7 invokevirtual #6 <Method void ... 10 return (4) - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Java / JavaScript Java (SUN) langage de programmation orienté objet le programme compilé s’exécute chez le client programmes indépendants (applications) JavaScript (Netscape) langage de programmation non orienté objet le programme s’exécute chez le client le source est inclus dans le fichier HTML - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - CGI / Active X / HTML CGI c’est une norme de passage de paramètres le langage de programmation est quelconque le programme s’exécute sur le serveur ActiveX (Microsoft) composants «réutilisables» manipulables par un script inclus dans HTML HTML langage de description de document - Jean-Claude MARTIN - ch1: Introduction -
Java / JavaScript CGI / Active X / HTML Evolutions rapides Passerelles - Jean-Claude MARTIN - ch1: Introduction -
Exécutions avec différents navigateurs - Jean-Claude MARTIN - ch1: Introduction -
Exemple : une applet carte interactive - Jean-Claude MARTIN - ch1: Introduction -
Javafig : une application pour dessiner - Jean-Claude MARTIN - ch1: Introduction -
3D function builder : une applet pour dessiner des courbes 3D - Jean-Claude MARTIN - ch1: Introduction -
Le navigateur exécute une applet les étapes le navigateur réserve de l’espace dans sa fenêtre pour l’exécution de l’applet le navigateur charge le bytecode (.class ou .jar) le navigateur crée une instance de l’applet la machine virtuelle appelle init() puis start() - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction -
Cycle de vie d’une applet - Jean-Claude MARTIN - ch1: Introduction -
Passage de paramètres à une applet <HTML> <HEAD> <TITLE> Passage de paramètres à une Applet </TITLE> </HEAD> <BODY> <H1>Exécution de l'applet</H1> <APPLET code="Par.class" width=300 height=300> <PARAM NAME="Nom" VALUE="Java in a nutshell"> <PARAM NAME="Nb" VALUE=610> </APPLET> </BODY> </HTML> - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - // Lecture des paramètres de l’applet dans le programme Java import java.awt.* ; import java.applet.* ; public class Par extends Applet { String sNomLivre, sNbPage; public void init () { sNomLivre = getParameter ("Nom"); sNbPage = getParameter ("Nb"); } public void paint (Graphics g) g.drawString ("Nom du livre : " +sNomLivre , 50, 50); g.drawString ("Nombre de pages :" + sNbPage , 50, 70); - Jean-Claude MARTIN - ch1: Introduction -
Exécution avec appletviewer - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Applet et Tags HTML absolu ou relatif à la page HTML si absent, celle de la page HTML < APPLET [CODEBASE = codebaseURL] CODE = appletFile [ALT = alternateText] [NAME = appletInstanceName] WIDTH = pixels HEIGHT = pixels [ALIGN = alignment] [VSPACE = pixels] [HSPACE = pixels] [ARCHIVE = «fichier1, fichier2»] > [< PARAM NAME = appletParameter1 VALUE = value >] [< PARAM NAME = appletParameter2 VALUE = value >] [alternateHTML] </APPLET> affiché par les navigateurs comprenant <APPLET> mais n’ayant pas pu exécuter l’applet Java plusieurs applets dans une page affiché par les navigateurs ne comprenant pas <APPLET> - Jean-Claude MARTIN - ch1: Introduction -
Qu’est-ce qu’une applet ? Component : peut gérer les événements souris, clavier... Container : peut contenir plusieurs objets graphiques Panel Applet : cycle de vie déterminé - Jean-Claude MARTIN - ch1: Introduction -
Applet et System.out.println import java.awt.* ; import java.applet.* ; public class HelloApplet extends Applet { public void init() { System.out.println ("Affichage depuis l'applet"); } public void paint (Graphics g) g.drawString (" Hello World! ", 20, 50) ; - Jean-Claude MARTIN - ch1: Introduction -
Affichage dans la console Java Peut aussi s’afficher dans la fenêtre ayant lancé manuellement le navigateur (ou l’appletviewer) - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Applet et sécurité Application :mêmes droits qu’un programme C... . plus la sécurité liée à Java Applet locale : peut avoir presque autant de droits téléchargée à travers le réseau considérée «untrusted» : limitations (dépendent du navigateur) espace de noms séparé des classes locales signature digitale spécifiée (javakey dans 1.1) => «trusted» - Jean-Claude MARTIN - ch1: Introduction -
- Jean-Claude MARTIN - ch1: Introduction - Sécurité En général : sur votre machine, une applet ne peut pas lire / écrire / supprimer / renommer des fichiers obtenir taille / date / droits d’accès des fichiers lister ou créer des dossiers se connecter à d’autres ordinateurs que celui depuis lequel le code a été téléchargé créer de nouveaux processus télécharger du code écrit dans un autre langage - Jean-Claude MARTIN - ch1: Introduction -