Scrivere un programma in Java



Похожие документы
Il linguaggio di programmazione JAVA

Appunti di Informatica 1

Programmare in Java. Olga Scotti

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

2 - Introduzione al linguaggio Java

Strumenti per la programmazione

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Struttura di un programma Java

Panoramica: che cosa è necessario

Corso Eclipse. Prerequisiti. 1 Introduzione

Primi programmi in Java. Lezione IV

Eclipse. Avviare un progetto e compilare un semplice programma

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Tale attività non è descritta in questa dispensa

Getting Started. Walter Cazzola. Dipartimento di Informatica e Comunicazione Università degli Studi di Milano

Programmazione Orientata agli Oggetti in Linguaggio Java

Esercitazione 4 JDBC

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Le command line di Java

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Ambienti di Sviluppo

Introduzione alla programmazione in Java

Eclipse - Nozioni Base

COMPILAZIONE DI UN APPLICAZIONE. 1) Compilare il file (o i file se più d uno) che contengono il testo del programma. compilatore

Introduzione a Dev-C++

Ingegneria del Software 1: Eclipse

Fondamenti di programmazione in Java. Lezione III

Installazione del Software. per lo Sviluppo di Applicazioni Java

Installazione del JDK 6

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Fondamenti di Informatica T1 Guida all uso di JDK e Eclipse

Introduzione ad Eclipse

Java: Compilatore e Interprete

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Il calendario di Windows Vista

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Visual basic base Lezione 01. L'ambiente di sviluppo

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Codifica: dal diagramma a blocchi al linguaggio C++

AMBIENTE DEV PASCAL. Dev-Pascal Finestra di apertura

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Prova di Laboratorio di Programmazione

4. Un ambiente di sviluppo per Java

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Progetto di Ingegneria del Software 2. SWIMv2

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

NOZIONI BASE PER ESERCITAZIONI

Configurare TPTP in Eclipse e testare un applicazione

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

STAMPA UNIONE DI WORD

e l ambiente Info L 4 Le operazioni sui dati L 1 L ambiente di programmazione L 5 Le stringhe L 2 La struttura del codice

Il linguaggio Java. Concetti base. I packages

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Guida di Installazione GCC

Esercizi su. Funzioni

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

Apache 2, PHP5, MySQL 5

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua

Josef Vitanostra INFORMATICA PARTHENOPE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

SOMMARIO... 3 INTRODUZIONE...

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Invio SMS. DM Board ICS Invio SMS

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Installazione LINUX 10.0

Figura 1 Le Icone dei file di Excel con e senza macro.

sito web sito Internet

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world!

1. Le macro in Access 2000/2003

Uno dei problemi principali di quando si cerca di copiare un sito web, è che non è possibile a causa di un divieto imposto dal file Robots.txt.

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Database 1 biblioteca universitaria. Testo del quesito

Il web server Apache Lezione n. 3. Introduzione

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Транскрипт:

Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Scrivere un programma in Java Una caratteristica che ha reso popolare il Java è quella di essere indipendente dal S.O. in cui un programma è compilato. Ma come è resa possibile questa cosa? Il compilatore Java produce un codice che non è il codice binario finale, ma un codice binario intermedio chiamato bytecode (indipendente dall architettura) Questo codice intermedio è interpretato da una macchina virtuale che lo traduce in istruzioni macchina la Java Virtual Machine (JVM) La JVM ha bisogno di conoscere il SO su cui sta girando. La Sun mette a disposizione JVM per tutti i sistemi operativi: Windows, Linux, Unix, Mac ecc

Scrivere un programma in Java In definitiva, scrivere un programma Java vuole dire creare un file di testo contenente del codice sorgente Java: un file per ogni classe Il file così creato ha estensione.java e deve essere elaborato dal compilatore Java: javac xxx.java xxx.class Il compliatore crea un file.class, con lo stesso nome dell originario, che contiene il bytecode per la JVM java xxx esecuzione del main della classe xxx.class

Es HelloWorld.java class HelloWorld { public static void main(string[] args) { System.out.println( Hello World! ); } } bytecode Java Compiler javac javac e java sono forniti con la distribuzione Java (JDK) java 01010101 11010101 11101001 10101011 11100101 JVM HelloWorld.class

javac.exe e java.exe Forniti con la distribuzione Java della SUN: JDK Dipendono dall architettura: È necessario utilizzare il JDK per Windows se si usa Windows, ugualmente per Linux, Mac, ecc Sono applicazioni lanciate dall utente dalla shell dei comandi (prompt di MS-DOS per utenti Windows) oppure dall ambiente di sviluppo grafico utilizzato Devono essere nel path di ricerca del S.O. : Es. in windows: path %path%;c:\programmi\java\j2re1.4.2_04;c:\programmi\java\ j2re1.4.2_04\bin; set JAVAHOME=C:\Programmi\Java\j2re1.4.2_04

javac.exe

java.exe

CLASSPATH Quando creiamo una classe Java, affinché sia utilizzabile è necessario che il nome del file sia lo stesso del nome della classe: La classe prova va quindi salvata in un file prova.java e compilata nel file prova.class Il compilatore javac si occupa di generare il file.class con il nome del file.java che gli viene fornito come parametro di ingresso Il file.class deve poi essere presente nel classpath della macchina virtuale, altrimenti non sarà trovato. E possibile specificare il classpath, come opzione, quando viene eseguita la JVM: java.exe classpath [PATH1;PATH2; ;PATHn] file.class In alternativa si può definire una variabile di sistema CLASSPATH da cui il compilatore e la JVM leggono automaticamente il classpath

Classpath in javac

Classpath in JVM

Regole di base di JAVA

Regole di base 1 Java, come quasi tutti i linguaggi di programmazione di alto livello è case-sensitive, distingue cioè le lettere minuscole da quelle maiuscole: La variabile nome è quindi diversa da Nome È consigliato inserire delle linee di commento per rendere il codice più leggibile e comprensibile (commentare il codice): La sequenza // permette di commentare la parte di riga rimanente I delimitatori /* e */ permettono di commentare tutto ciò che è compreso tra queste due sequenze di caratteri Es: int a=3; // questa parte finale della riga è commentata /* commento su più righe */

Regole di base 2 Istruzione Ogni istruzione termina con un ; Blocchi di codice Ogni blocco di codice (sequenza di una o più istruzioni da eseguire in blocco) è racchiuso tra parentesi graffe: { } Formattazione Una singola istruzione per riga L apertura di un blocco viene indentata per rendere più chiara la struttura del blocco class HelloWorld { public static main(string[] args) { // visualizza un messaggio di saluto System.out.println( Hello World!! ); } }

Facciamo un esempio Scrivere un applicazione di benvenuto: il cosiddetto HelloWorld Iniziamo col creare un file HelloWorld.java con il notepad (o qualsiasi altro editor di testo) Scriviamo il codice per la nostra applicazione: class HelloWorld { public static void main(string[] args) { System.out.println( Hello World! ); } } Utilizziamo lo script JavaEnvStart : Questo script setta le variabili di ambiente JAVAHOME e PATH in modo cha sia possibile utilizzare javac.exe e java.exe

Facciamo un esempio Copiamo lo script nella directory dove abbiamo salvato il file HelloWorld.java ed avviamo il prompt di MS-DOS Digitiamo: javac HelloWorld.java E vediamo che viene creato il file HelloWorld.class Se proviamo ad aprire il file HelloWorld.class con un editor di testo (notepad), vediamo una sequenza di caratteri incomprensibile: bytecode della nostra prima applicazione Java Adesso chiamiamo la JVM per eseguire la nostra classe: java HelloWorld

Facciamo un esempio Otteniamo però un errore: Exception in thread "main" java.lang.noclassdeffounderror: HelloWorld Cosa vuol dire? La JVM non trova la classe HelloWorld di cui deve lanciare la funzione main() Forse vuole il nome del file: java HelloWorld.class Otteniamo ancora un errore simile: Exception in thread "main" java.lang.noclassdeffounderror: HelloWorld/class La JVM ancora non trova la classe HelloWorld/class Dove è il problema?

Facciamo un esempio Il problema sta nel fatto che la JVM cerca la classe HelloWorld (ossia il file HelloWorld.class) nei percorsi specificati dalla variabile di sistema CLASSPATH: Questa variabile non contiene però il percorso dove si trova HelloWorld.class E necessario quindi specificare alla JVM che cerchi il file (o meglio la classe) anche nella directory corrente: java cp. HelloWorld Adesso funziona tutto!!

Facciamo un esempio Proviamo adesso a rinominare la funzione main(string[] args) con run(string[] args) e compiliamo di nuovo: Per adesso nessun problema, javac genera il file HelloWorld.class Proviamo a lanciare HelloWorld.class : java cp. HelloWorld Ovviamente otteniamo un errore: Exception in thread "main" java.lang.nosuchmethoderror: main Perché OVVIAMENTE? Che errore si verifica?

Facciamo un esempio Leggendo attentamente il messaggio di errore si vede che la JVM ci sta dicendo che non trova il metodo main Il metodo main di un oggetto, come detto, contiene il corpo principale dell applicazione rappresentata dall oggetto stesso Quando si invia un oggetto alla JVM, quest ultima prova a lanciare il metodo main, ad eseguire quindi l oggetto come se fosse un applicazione: Se tale metodo non esiste, la JVM ritorna un errore del tipo visto prima

IDE

Integrated Development Environment (IDE) Un IDE è una applicazione grafica che fornisce al programmatore un ambiente di sviluppo completo ma al tempo stesso semplice e chiaro Tramite una interfaccia grafica (GUI) è possibile costruire il progetto, tenere sotto controllo le varie parti, effettuare il debugging e molto altro ancora I più comuni ambienti di sviluppo Java sono: JBuilder della Borland, a pagamento, ma è disponibile una versione free (chiamata Foundation) NetBeans della SunMicrosystem, free scaricabile dal sito www.java. Eclipse della Eclipse Foundation

Integrated Development Environment (IDE) L uso dei programmi da linea di comando javac e java viene nascosto dalla IDE: Compilando il progetto, il software passa al compilatore tutti i files necessari e genera i file.class Anche l esecuzione del programma è gestita dall interfaccia e richiede solamente di specificare quale funzione main() eseguire Anche la gestione del path e del classpath è gestibile attraverso l interfaccia grafica: Il path corrente è automaticamente inserito nel classpath Aggiungendo librerie automaticamente viene aggiunto il percorso al classpath

Netbeans L ambiente che utilizzeremo è Netbeans, ma tutto ciò che viene fatto è facilmente trasportabile su Jbuilder o su Eclipse Oltre alla libreria standard del Java, ogni IDE può mettere a disposizione librerie proprietarie da utilizzare nel progetto: Non sempre consigliato dato che una caratteristica molto importante del Java è quella della trasferibilità del codice e molte volte l uso di librerie proprietarie può limitare questa possibilità Il Netbeans mette a disposizione una gran quantità di tipologie di progetto: tramite un wizard è possibile scegliere il tipo di progetto, specificarne i parametri ed iniziare a programmare

Esempio Proviamo adesso a creare una applicazione HelloWorld utilizzando Netbeans Prima di tutto avviamo Netbeans Apriamo il menù File e selezioniamo New Possiamo creare direttamente una classe o un progetto. Nel primo caso, viene richiesto comunque di creare un progetto per la classe. Una volta scelto il nome del progetto e dove salvarlo passiamo alla creazione guidata della classe Ci viene chiesto il nome della classe (HelloWorld) ed il package: Per adesso ignoriamo il package (lasciamo bianco il campo del package) Notiamo l opzione generate main method che permette di generare uno scheletro per la funzione main all interno della classe

Esempio Inseriamo il codice Java nel file HelloWorld.java class HelloWorld { public static void main(string[] args) { System.out.println( Hello World! ); } } Adesso possiamo compilare ed eseguire l applicazione: Tramite il menù run eseguiamo l applicazione Notiamo la possibilità di eseguire l applicazione anche in modalità Debug

Esempio Nella finestra in basso vedremo visualizzato l output dell applicazione E possibile verificare che anche in questo caso, rinominando la funzione main() in qualsiasi altro modo (anche Main()), il compilatore restituisce un errore

Debug

Debug in Netbeans Un IDE permette di effettuare un operazione molto utile al programmatore: Il debugging Trovare i punti in cui il programma si comporta in maniera differente da quello che il creatore si aspettava è un lavoro molto difficile e costoso: Il debug a run-time permette di impostare dei break-point Break-point: punto del programma in cui si desidera fermare il flusso delle istruzioni per verificare ed ispezionare lo stato dell applicazione

Breakpoint Viene selezionata la riga di codice in cui si desidera interrompere il programma Quando l esecuzione del programma raggiunge tale riga di codice, l IDE interrompe l esecuzione e permette all utente di interagire con il programma: per esempio la lettura di alcuni valori attuali dell applicazione Una volta terminata la verifica è possibile continuare fino al break-point successivo o fino alla terminazione dell applicazione Inoltre, esiste la possibilità di eseguire l applicazione passo-passo, in questo caso l ambiente si ferma ad ogni istruzione

Esempio Riprendiamo l applicazione HelloWorld Inseriamo una nuova istruzione: ES : una istruzione di assegnamento ad una variabile int a = 4; Inseriamo un break-point in corrispondenza dell istruzione successiva Lanciamo l applicazione in modalità debug

Esempio Vediamo che l esecuzione si interrompe alla linea di codice con il break-point A questo punto è possibile: ispezionare i contenuti dell oggetto

Esempio mettere dei watch sulle variabili

Esempio Infine è possibile continuare l applicazione (F5) fino ad un successivo break-point o alla fine, andare avanti passo-passo (F8), entrare all interno della funzione corrente(f7), ecc