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