Prova Finale
a.a. 2011/2012
Laboratorio 1: Introduzione a Java e Eclipse
1
Java 6 Standard Edition
•  JRE
Linguaggio Java
–  Macchina virtuale e librerie
necessarie per l'esecuzione
di programmi Java.
Tool di sviluppo (javac, ....)‫‏‬
Librerie per l'interfaccia grafica
Macchina virtuale
Sistema Operativo
JRE
JDK
Librerie di base
•  JDK
–  JRE + tool a riga di comando
(compilatore, debugger, ...)
necessari per sviluppare
programmi in Java
Java Virtual Machine
•  Macchina astratta
–  Esegue programmi Java compilati con javac
–  Stesso programma eseguito su diverse piattaforme (con
machcine virtuali diverse)‫‏‬
Sviluppo di un programma Java
•  File .jar = Java Archive
–  Raggruppano un insieme di file (tipicamente .class)‫‏‬
Javac
•  Compilatore a riga di comando (stile gcc)‫‏‬
•  Riceve in ingresso:
–  File .java del programma (organizzati in directory
rispettando la struttura dei package)‫‏‬
–  Posizione delle librerie esterne (già compilate e inserite in
file .jar)‫‏‬
•  Produce:
–  I file .class del programma
–  Oppure messaggi di errore
JavaC
•  Sintassi:
–  javac [ options ] [ sourcefiles ]
–  Options: opzioni per il compilatore
(es. La posizione di classi da cui
dipendono quelle da compilare)‫‏‬
–  Sourcefiles: i nomi e i percorsi
dei file java da compilare
Java virtual Machine
•  Si lancia con il comando java
•  Esegue una serie di classi (file .class)‫‏‬
•  Sintassi:
–  java [ options ] class [ argument ... ]
–  java [ options ] -jar file.jar [ argument ... ]
–  Options: opzioni per la virtual machine
–  Argument: parametri per il programma da eseguire
Esecuzione di un programma
•  Creare un file con notepad:
–  Nome: HelloWorld.java
class HelloWorldApp {
public static void main(String[] args) {
//Display "Hello World!"
System.out.println("Hello World!");
}
}
Esecuzione di un programma
•  Compilare il programma:
–  javac HelloWorld.java
•  Eseguire il programma:
–  java HelloWorld
•  Attenzione: quando si esegue un programma non bisogna
inserire l'estensione .class e bisogna rispettare la struttura
dei package
Integrated Development Environment
•  Ambiente software utilizzato per lo sviluppo di applicazioni
•  Ambiente interattivo
–  Intuitivo
–  Automatizza operazioni
–  Automatizza gestione dei progetti
–  ....
•  Integra anche aspetti esterni alla programmazione:
progettazione, testing, ...
Integrated Development Environment
•  Tipicamente funge da interfaccia per tool di livello più
basso
•  Esempi:
–  Eclipse (per tutto)‫‏‬
–  Borland Jbuilder (per Java)‫‏‬
–  Kdevelop (C / C++ sotto linux)‫‏‬
–  Microsoft Visual Studio
Eclipse
•  Piattaforma estendibile per sviluppo
–  Meccanismo dei plugin
•  Plugin permettono di:
–  Programmare con diversi linguaggi
–  Progettare sistemi software
–  Testare applicazioni
–  ...
•  Noi lo useremo per sviluppare in Java
Avviare eclipse
Workspace
•  Ambiente di lavoro
–  Racchiude progetti
–  Mantiene
impostazioni
–  Raggruppa viste e
funzionalità
Progetti
•  Raccoglie una serie di file correlati e le relative
impostazioni
•  Diversi tipi di progetti a seconda della finalità
–  Per noi progetti Java
•  Contengono principalmente sorgenti e file compilati
•  Ogni progetto è contenuto in una sottodirectory all'interno
del workspace
–  Può essere spostato o copiato integralmente da un
workspace verso un altro
Creare progetto
Workspace - elementi
•  Editor testuali
–  Inserimento,
modifica, ecc. Del
codice
–  Aiuti allo sviluppatore
Workspace - elementi
•  Viste (views)‫‏‬
–  Visualizzazione/
editing di elementi
del progetto
–  Gestione packages,
Gestione errori,...
–  Personalizzabili
Workspace - elementi
•  Prospettive (perspective)‫‏‬
–  Insieme di editor e
viste per una specifica
funzionalità
–  Prospettiva per lo
sviluppo Java
–  Diverse a seconda
della fase di sviluppo
(testing, debugging,
ecc.)‫‏‬
Java perspective
• 
• 
• 
• 
• 
Java editor
Package explorer
Outline
Problems
Documentazione
Esecuzione di un programma
•  Posso mantenere la configurazione per una specifica
esecuzione
–  Salvo che classe eseguire
–  Salvo i parametri da passare in ingresso
–  Salvo che JVM utilizzare
–  Salvo impostazioni della JVM
–  ....
•  A noi interessano le “Java application”
Visualizzare impostazioni di esecuzione
Debugging con Eclipse
•  Si interfaccia con il debugger incluso nel JDK
•  Offre un'interfaccia comoda per il debugging delle
applicazioni, permette di:
–  Settare/gestire brakpoint
–  Eseguire il programma passo passo
–  Monitorare il contenuto delle variabili
–  ....
Prospettiva di debug
•  Controlli per esecuzione
passo/passo
• 
• 
• 
• 
Monitor variabili
Stack chiamate
Editor
Output
I/O forma*ato •  Input
–  Dobbiamo costruire uno scanner collegato allo “standard
input stream” System.in, poi usare i metodi della classe
Scanner
• 
• 
• 
• 
• 
• 
nextLine() legge la prossima riga
next() legge la prossima stringa fino a uno spazio
nextInt() legge il prossimo int
nextDouble() legge il prossimo double
hasNext() dice se c'è una stringa in input
hasNextInt(), nextFloat(), nextBoolean()
•  Output
–  System.out fornisce anche il “buon vecchio” printf di C, con
le solite convenzioni di formattazione, più print e println
Esempio
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.println("Come ti chiami?");
String nome = in.nextLine();
System.out.println("Quanti anni hai?");
int eta = in.nextInt();
System.out.println("Ciao "+nome+" tra un anno avrai "
}
+(eta+1)+" anni");
Riferimenti
Documentazione API Java:
http://docs.oracle.com/javase/6/docs/api/
Documentazione Eclipse:
http://help.eclipse.org/indigo/index.jsp