Introduzione
Fondamenti di informatica L-B
Laboratorio
Alessandro Falchi
[email protected]
Java: un po’ di storia…




1992: il Green Team di Sun, capitanato da James Gosling, realizza il
linguaggio Oak (quercia), indirizzato al controllo di reti di dispositivi
di elettronica di consumo (TV, frigoriferi, …). Oak, che non ha vincoli
di retrocompatibilità, è un linguaggio ad oggetti con caratteristiche
“moderne”: portabililtà (deve essere indipendente dalla piattaforma),
multithread, gestione della memoria (garbage collector) e
orientamento alle reti.
1993: il mercato degli elettrodomestici intelligenti è ancora
immaturo, mentre esplode il boom di Internet. Oak viene dunque
“reindirizzato” per supportare l’inclusione di codice nelle pagine Web
1994: WebRunner (ribattezzato poi HotJava) è il primo browser in
grado di eseguire applet Java
1995: Oak viene ribattezzato Java (miscela di caffè) ed il 23 Maggio
Sun ne annuncia la versione 1.0. Gli elementi che determinano il
successo di Java, oltre alle sue caratteristiche, sono l’inclusione
della Java Virtual Machine nel browser Netscape (al tempo leader)
e il rilascio gratuito, da parte di Sun, del codice sorgente di Java
nel Developer Kit (JDK)
Java: l’evoluzione






1.0: versione iniziale. Contiene 212 classi.
1.1: prima evoluzione del linguaggio e della JVM
1.2: release significativa: il numero di classi arriva a 1520,
includendo le librerie Swing per le interfacce grafiche e il
supporto alle Collection. A sottolineare l’importante evoluzione
della piattaforma, viene adottato il brand Java2, che però ha
solo valenza commerciale (e di confusione…)
1.3: questa versione mira soprattuto a migliorare le
performance della JVM ed a consolidare il class system
1.4: forte evoluzione della piattaforma, che arriva a 2991
classi e interfacce. Estensioni in numerose direzioni (I/O,
grafica, XML, sicurezza…)
1.5: ultima release attualmente disponibile. Estensioni al
nucleo del linguaggio (generics, enumeration…), al class
system (che conta ora 3552 classi e interfacce) e alla JVM
(gestione remota e programmazione concorrente). Questa
versione è anche chiamata Java 5.0
Un linguaggio, tre architetture



J2SE (Java2 Standard Edition): è la versione base,
“generica” di Java, contenente l’intero class system
e gli strumenti per sviluppare applicazioni e applet
(programmi Java inseriti nelle pagine web)
J2EE (Java2 Enterprise Edition): estende J2SE con
funzionalità per lo sviluppo di applicazioni
enterprise, quali JSP (Java Server Pages), Servlet,
EJB (Enteprise Java Bean) e Web Services. Evolve
in maniera più contenuta rispetto a J2SE.
J2ME (Java2 Micro Edition): versione ridotta di
J2SE per il supporto allo sviluppo di applicazioni per
dispositivi mobili quali palm e telefoni. Esistono
anche diverse versioni della JVM per J2ME a
seconda della potenza computazionale dei
dispositivi
Cosa installare?
J2SE SDK Software Development Kit (chiamato anche JDK – Java
Development Kit): contiene tutte le classi con relativo codice sorgente,
gli strumenti per lo sviluppo e il Java Runtime Environment (JRE) per il
supporto all’esecuzione di applicazioni Java.
Il JRE è disponibile come modulo stand alone per chi non deve
sviluppare ma solo eseguire applicazione Java (tipicamente è noto come
plugin Java per il browser)
Versioni: il version numbering segue la notazione X.Y.Z_nm
Ad esempio: 1.4.2_10, 1.5.0_06
X: versione della piattaforma (ad oggi solo 1)
Y: versione della release (l’ultima è 5)
Z: aggiornamenti alla release che con modifiche alle classi
nm: bugfix e security fix che non alterano l’accesso alle classi
Nota: l’ultima release del JDK è etichettata sia come 5.0 che come 1.5.0!
Documentazione
L’intero class system di Java è dettagliatamente
documentato nelle pagine HTML che costituiscono
la JavaDoc, nome che deriva dal tool per la
generazione automatica della documentazione.
Sul sito di Sun potete sia scaricare la JavaDoc relativa
alla versione di Java che utilizzate (es: 1.4.2 oppure
1.5.0) che “sfogliarla” on-line. L’accesso è in
entrambi i casi attraverso un browser web o un tool
in grado di visualizzare le pagine HTML.
Consiglio: scegliete la visualizzazione “con frame”,
oggi supportata dalla totalità dei browser e
decisamente più pratica
Tool da linea di comando
Compilatore - javac
 Macchina virtuale - java
 Debugger - jdb
 Generatore automatico di documentazione
ipertestuale - javadoc
 Altri comandi - appletviewer, javap, rmic,
…

javac
1. Trasforma il codice sorgente (file .java) in bytecode (file
.class) interpretabile dalla JVM
2. Permette di compilare classi singole e gruppi di classi,
anche mantenendo direttori separati per sorgenti e
compilati
javac [opzioni] [sorgenti] [@ElencoSorg]
possibili opzioni:
– -classpath: classi bootstrap, extension, poi classpath di
utente (variabile di ambiente e opzione)
– -d (direttorio per classi)
– -g (debugging abilitato)
– -verbose (info estese sulla compilazione), ...
java
1. Mette in esecuzione una applicazione Java
2. Avvia una macchina virtuale Java, carica una
classe specificata e invoca il suo metodo main
(pubblico e statico)
java [opzioni] File.class [parametri]
java [opzioni] -jar File.jar [parametri]
varianti: javaw, oldjava, oldjavaw
opzioni: -classpath/-cp, -jar, -verbose, -?, ...
javadoc
Analizza i file sorgenti Java e produce la corrispondente
documentazione ipertestuale (formato html) sulla base di
particolari commenti inseriti nei sorgenti stessi
Può essere invocato su singole classi o interi package
javadoc [opzioni][package][sorg][@ElencoS/P]
Vari tag standardizzati per i commenti:
@author, @param, @return, @throws, @see,
@version…
Sono validi anche diversi tag HTML (<p>, <b>, …)
ECLIPSE
Eclipse è una community open source focalizzata sullo
sviluppo di strumenti per sviluppatori
Homepage: http://www.eclipse.org/
Eclipse è anche il nome della piattaforma IDE (Integrated
Development Environment)
Vantaggi
 Strumento potente e completo
 Codice sorgente (Java) disponibile
 Modulare (numerose estensioni disponibili)
 Supporto allo sviluppo in altri linguaggi
Svantaggi
 Pesantezza
ECLIPSE – cosa installare
Per il corso di fondamenti di informatica (e più in generale
per usare Eclipse nella realizzazione di semplici programmi
Java) sono necessari:
 Eclipse platform (prelevare la versione per il sistema
operativo usato)
 JDT (Java Development Tool): OS independent
Ad oggi, la versione di Eclipse più recente è la 3.1.2.
Eclipse richiede come prerequisito l’installazione di almeno
una JVM (è sufficiente il JRE ma è consigliato il JDK)
[per utenti Windows] I file zip scaricati vanno
semplicemente posti in una cartella e da lì decompressi:
verrà creata una cartella eclipse. L’IDE si avvia facendo
partire il file eclipse.exe
Avvio e selezione workspace
Welcome Screen e workbench
Creazione di un progetto (1)
Creazione di un progetto (2)
Creazione di un progetto (3)
Creazione di un package
Nome del package
Per convenzione, i nomi dei package hanno l’iniziale minuscola: provando a
mettere “Test” anziché “test”, Eclipse segnala un avvertimento nella parte alta
della finestra
Creazione di una classe con main (1)
Creazione di una classe con main (2)
I nomi delle classi hanno per convenzione l’iniziale MAIUSCOLA (Eclipse
segnala il non rispetto della convenzione)
Editing del codice sorgente
Package
Explorer
Outline
Area di editing
Problems
Il nostro primo programma
package test;
public class PrimoProgramma {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("ORA DOMINO JAVA ED ECLIPSE!!!");
}
}
Eclipse segnala errori nel sorgente in tempo reale, sottolineandoli
con una linea ondulata di color rosso chiaro
Esecuzione del programma
RUN
Java Application
Avvio dell’esecuzione
Salvataggio
Ad esecuzione terminata…
Alcune note




Per essere eseguibile come Java Application, il codice
sorgente deve contenere il metodo main(String[] args)
Una volta eseguito un programma, Eclipse ricorda le
impostazioni fatte e permette di eseguirlo nuovamente
(anche se modificato) con un clic sull’icona “Run” nella
toolbar.
Il menu a tendina accanto a tale icona “ricorda” i
programmi messi in esecuzione più di recente (così che
con un clic su tale oggeto si riavvi l’esecuzione)
Eclipse mette a disposizione numerosi strumenti che
rendono più agevole il vostro lavoro: provateli!
Un esempio: il menu Source → Format sistema il codice
in modo da rispettare le convenzioni di indentazione
Salvate il codice più spesso di quanto non lo eseguiate!!