1
Prova Finale a.a. 2011/2012
Laboratorio 1: Introduzione a Java e Eclipse
Java 6 Standard Edition
Sistema Operativo
Macchina virtuale
Librerie di base
Librerie per l'interfaccia grafica
Tool di sviluppo (javac, ....)
Linguaggio Java
JDK
JR
E
• JRE – Macchina virtuale e librerie
necessarie per l'esecuzione di programmi Java.
• 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