Compilation : Exécution :
javac HelloWorld.java java HelloWorld Hello World !
* White Paper :The Java Language Environment - James Gosling, Henry McGilton - May 1996 Hello world !
http://java.sun.com/docs/white/langenv/ javac java Hello World !
Hello World !
HelloWorld.java HelloWorld.class Hello World !
• Chargement
– chargement sélectif et dynamique des classes • Les Applications indépendantes
– vérification statique du code (tentatives de modification de la machine – Programmes autonomes (stand-alone)
virtuelle, ...)
• Protection lors de l'exécution
– Le "security manager" possède un droit de veto (accès "sauvages" au
système de fichiers, ...)
– Cette protection peut-être modulée
JVM
• Les Applets
Réseau
ou Class Loader
Classes Security Manager – Programmes exécutées dans l’environnement d’un
Système locales navigateur Web et chargés au travers de pages HTML
de fichiers Demo
.class
Byte-Code verifier Interpreter Seuls diffèrent les contextes d'invocation et d’exécution
– Les droits des applets et des applications ne sont pas les mêmes
• Application doit posséder une classe principale • Classe ne possédant pas de méthode main()
– classe possédant une méthode de signature Tableau de chaînes de caractères
• Hérite de java.awt.Applet ou javax.swing.JApplet
(équivalent à argc, argv du C)
public static void main(String[] args) • Son bytecode réside sur un serveur http
• Elle est véhiculée vers un client http (navigateur Web) via une
page html qui contient son url
• Cette méthode sert de point d’entrée pour l’exécution • Lorsqu’un navigateur compatible Java (avec sa propre machine
– l’exécution de l ’application démarre par l’interprétation de cette virtuelle java (JVM)) reçoit cette page HTML, il télécharge le code
méthode Exécute le code contenu dans le de la classe et l’exécute sur le poste client
fichier AppliVisage1.class
– l’applet doit posséder un certain nombre de méthodes pour permettre cette
ex : java AppliVisage1 exécution
• init(), start(), stop(), paint(), destroy()
• Plateforme
<HTML>
<HEAD>
<TITLE>A Clock (1.1)</TITLE>
http://java.sun.com/jdk1.3/demo/applets/Clock/example1.html
</HEAD>
<BODY> 1. Demande de chargement d ’une
– Environnement matériel et/ou logiciel dans lequel un programme s'exécute.
• La plus part des plateformes sont la combinaison d'un OS et du matériel sous-
<h1>A Clock (1.1)</h1>
<hr> page web contenant une applet
<applet code="Clock2.class"
width=170 height=150> HTML jacent (MS Windows + Intel, Linux + Intel, Solaris + Sparc,
<param bgcolor="C0C0C0">
</applet> 2. Chargement de la page html HTML HTML Mac Os X + Power PC)
.... HTML
</BODY>
2000 classes
packages
1520
1500
Plateforme matérielle
Programmer en Java nécessite une bonne
•Amélioration des performances
(OS + hardware) connaissance de l'API. •Modification du langage :classes internes •Assertions, Nouveau package pour i/o,
Attention à la courbe d'apprentissage (learning •Modification du modèle événementiel •Nouvelles classes pour collections…
curve) qui est peut être longue •pour awt Java Beans •Nombreux nouveaux packages
•Amélioration des performances de la VM (XML, log des applications,
préférences utilisateur …)
• 3 éditions de Java
Standard Edition
Fourni les compilateurs, outils, runtimes, et APIs pour
JSE
J2SE écrire, déployer, et exécuter des applets et applications
dans la langage de programmation Java
JDK
JRE
JRE (Java Runtime Environnement) pour l'exécution de code java compilé JDK (Java Developper's Kit) outils de base pour le développement d'applications Java
JEE Java Entreprise Edition Architecture des applications JEE
• Plateforme définie par SUN pour le développement • Architecture multi-tiers
d’applications réparties Client léger
Poste client
– basée sur un ensemble de technologies Java
(navigateur web) Tier client
• Servlets, JSP(Java Server Pages), JSF (Java Server Faces) : pages Conteneur WEB
web dynamiques présentation Client riche
(application Java) Pages JSP
Pages JSP Servlets
Tier web
• JTA (Java Transaction API) ; API pour gestion des transactions données
Tier Système
Serveur
de bases
d'Information de de données
• JAAS (Java Authentication and Authorization Service) l'Entreprise
• Une spécification (Sun) : JEE 5 (2006), JEE 6 (2009) • Nombreux IDE (Integrated Development Environment) commerciaux,
open-source ou freeware
• Différentes implémentation de la plateforme
– implémentation de référence
• (JEE 5 SDK Java Application Platform) fournie gratuitement par Sun JDeveloper
– Des implémentations commerciales Oracle
– Thème 3 : itérations
– Thème 4 : instanciation d'objets - envois de messages « Au coeur de Java 2 - Volume 1 : Notions fondamentales »
Cay S. Horstmann, Gary Cornell, CampusPress, nov. 2003
« Thinking in Java »,
Bruce Eckel - Prentice-Hall ( www.BruceEckel.com , www.penserenjava.free)
Références (suite)
URLs
• http://java.sun.com - Site officiel Java de SUN
– JDK, Tutoriels, Documentations, spécifications, …
• http://www.javaworld.com
Magazine électronique
• http://www.jguru.com, http://www.jdance.com –
Sites dédiés à la technologie java
• applets, applications, notes techniques, forums de discussions
• …
• www.developpez.com
des tutoriels, des FAQ, des ressources….
• http://penserenjava.free.fr
une traduction du livre de BruceEckel « Thinking in Java »
• http://cui.unige.ch/java/
Le Coin Java Centre Universitaire d'Informatique (CUI) de l'Université de Genève
• …