![Page 1: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/1.jpg)
1
Prova Finale a.a. 2011/2012
Laboratorio 1: Introduzione a Java e Eclipse
![Page 2: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/2.jpg)
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
![Page 3: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/3.jpg)
Java Virtual Machine
• Macchina astratta – Esegue programmi Java compilati con javac – Stesso programma eseguito su diverse piattaforme (con
machcine virtuali diverse)
![Page 4: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/4.jpg)
Sviluppo di un programma Java
• File .jar = Java Archive – Raggruppano un insieme di file (tipicamente .class)
![Page 5: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/5.jpg)
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
![Page 6: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/6.jpg)
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
![Page 7: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/7.jpg)
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
![Page 8: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/8.jpg)
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!"); } }
![Page 9: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/9.jpg)
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
![Page 10: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/10.jpg)
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, ...
![Page 11: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/11.jpg)
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
![Page 12: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/12.jpg)
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
![Page 13: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/13.jpg)
Avviare eclipse
![Page 14: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/14.jpg)
Workspace • Ambiente di lavoro
– Racchiude progetti – Mantiene
impostazioni – Raggruppa viste e
funzionalità
![Page 15: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/15.jpg)
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
![Page 16: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/16.jpg)
Creare progetto
![Page 17: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/17.jpg)
Workspace - elementi • Editor testuali
– Inserimento, modifica, ecc. Del codice
– Aiuti allo sviluppatore
![Page 18: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/18.jpg)
Workspace - elementi • Viste (views)
– Visualizzazione/ editing di elementi del progetto
– Gestione packages, Gestione errori,...
– Personalizzabili
![Page 19: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/19.jpg)
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.)
![Page 20: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/20.jpg)
Java perspective
• Java editor • Package explorer • Outline • Problems • Documentazione
![Page 21: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/21.jpg)
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”
![Page 22: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/22.jpg)
Visualizzare impostazioni di esecuzione
![Page 23: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/23.jpg)
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 – ....
![Page 24: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/24.jpg)
Prospettiva di debug
• Controlli per esecuzione passo/passo
• Monitor variabili • Stack chiamate • Editor • Output
![Page 25: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/25.jpg)
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
![Page 26: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/26.jpg)
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");
}
![Page 27: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin](https://reader033.vdocuments.site/reader033/viewer/2022050204/5f578f5dcd781454e1566f11/html5/thumbnails/27.jpg)
Riferimenti
Documentazione API Java: http://docs.oracle.com/javase/6/docs/api/Documentazione Eclipse: http://help.eclipse.org/indigo/index.jsp