author: Giulio De Meo
INIZIARE CON JAVA 2
J2SE Standard Edition: include gli strumenti essenziali per compilare ed eseguire applet ed
applicazioni scritte nel linguaggio Java.
J2EE Enterprise Edition: la tecnologia J2EE e la sua architettura a componenti semplifica lo
sviluppo e l'integrazione di applicazioni enterprise.
J2ME Micro Edition: Ambiente di esecuzione ottimizzato per tutte le periferiche come le
smart card e i telefoni cellulari con limitate prestazioni e capacità di elaborazione.
Installazione: dal sito della SUN ( http://java.sun.com/) si scaricare l’ultima versione dello
Standard Development Kit (J2SDK). La versione 1.4.2_05 è costituita dal file zippato (51Mb)
J2sdk-1_4_2_05-windows-i586-p
Durante il setup installazione è necessario installare il Development Kit comprensivo di tutti i
suoi tools, ed il Runtime Environment comprendente il plug-in necessario ad avviare Applet
e Jar Eseguibili.
Dovranno quindi essere installati i due files:
Java2 sdk , SE v. 1.4.2_05 di circa 202Mb
Java2 Runtime Environment SE v.1.4.2_05 di circa 137Mb
Java 2 SDK è un Ambiente di Sviluppo per costruire applicazioni, applets e componenti che
possono essere sviluppati su una piattaforma Java.
IL software Java 2 SDK include tools utili a sviluppare e testare programmi scritti in
linguaggio Java e ad avviarli su piattaforme Java. Tali tools sono progettati in modo da essere
usati da linee di comando. Eccetto per Appletviewer questi tools non forniscono una interfaccia
grafica utente
1
author: Giulio De Meo
La Java 2 Runtime Environment è necessaria a sviluppatori e venditori di software per
distribuire le loro applicazioni. Essa contiene la Java virtual machine, runtime class libraries, e
Java application launcher che sono necessari a lanciare programmi scritti in linguaggio JAVA.
Non è un Ambiente di Sviluppo, né contiene Development tools come Compilers or
Debuggers.
Per vendere un’applicazione scritta in Java ad un cliente il Software deve comprendere: classi,
sorgenti, files di dati, una Runtime Environment necessaria al cliente per avviare l’installazione
e una procedura di Installazione del programma.
E’ preferibile consegnare l’applicazione come file eseguibile ( Executable Jar File) in modo che il
cliente la avvii semplicemente con un doppio click.
Il cliente deve installare il software sul proprio sistema: innanzitutto bisogna copiare il software
e configurare il sistema a supportare il software. Soprattutto si deve essere sicuri che
l’installazione non sovrascriva esistenti installazioni di JRE richiesti da altre applicazioni.
Dal sito [ http://java.sun.com/docs ] è possibile scaricare la documentazione della piattaforma
java, tutorials e documenti.
CONFIGURAZIONE DEL SISTEMA
Eseguita l’installazione del J2sdk sul proprio sistema, si è creata una cartella “ J2sdk1.4.2_05 “
Per eseguire i comandi java, jar, javac da qualsiasi directory del sistema è necessario settare il
path di sistema o modifarlo aggiungendo il percorso entro cui si trovano tali comandi java.
Per sistemi operativi come Windows 98 bisogna modificare il path dentro il file autoexec.bat
SET PATH =C:\WINDOWS; C:\.......; etc. ; C:\J2SDK1.4.2_05\BIN
Per sistema operativo Windows XP bisogna modificare il path nelle VARIABILI DI AMBIENTE del
computer aggiungendo al path già esistente la riga ;C:\J2SDK1.4.2_05\BIN
Sempre nella stessa finestra delle Variabili di Ambiente spesso è necessario creare una
variabile di ambiente di nome CLASSPATH, il cui valore indichi al compilatore java dove cercare
le classi di eventuali package importati all’interno di un file.java. Vedi l’ esempio seguente.
2
author: Giulio De Meo
L’ APPLICAZIONE READPORT
L’ applicazione ReadPort visualizza il tipo (seriali o parallele) ed il nome (COM LPT1) delle
porte presenti su un computer.
Per fare ciò importa il package comm.jar della SUN e le rispettive classi.
Per prima cosa bisogna copiare il file comm.jar nella cartella c:\j2sdk1.4.2_05\jre\lib\ext
e settare il classpath a questo indirizzo, creando la variabile di ambiente CLASSPATH con
valore
.;.\;C:\j2sdk1.4.2_05\jre\lib\ext\comm.jar;
3
author: Giulio De Meo
comm.jar fa parte delle Java Communications API (JCA), che permettono di creare delle
applicazioni o applet portabili, che necessitino di comunicazioni attraverso porta seriale e/o
parallela.
In esse è stata definita l'interfaccia javax.comm.CommDriver che dovrà essere implementata
da ciascun Driver JavaComm il cui compito è proprio quello di tradurre le varie operazioni sulle
porte, in codice nativo legato alla particolare implementazione della JVM. I compiti del driver
sono quelli dei metodi che descrive:
• void initialize() : Questo metodo deve assicurarsi della presenza dell'hardware e caricare le
librerie native che ne permettono l'utilizzo. Il compito di questo metodo è di determinare le
porte disponibili e quindi la memorizzarne l'elenco in un oggetto di tipo CommPortIdentifier.
• CommPort getCommPort(String portName,int portType) : Questo metodo permette di
ottenere un riferimento, ad un oggetto CommPort, rappresentativo di una porta. I
parametri sono relativi al nome della porta ed al tipo della stessa (ad esempio:COM1Seriale)
Ogni applicazione che utilizza le JCA potrà essere portata in ogni sistema operativo per il quale
esiste un CommDriver, ovvero una implementazione della precedente interfaccia.
Per S.O. Windows si utilizza la libreria Win32Com.dll.
Il package comm.jar è reperibile compreso nel file zippato javacomm20-win32.zip, scaricabile
dal sito Sun. Scompattandolo si hanno i seguenti file:
• comm.jar : Rappresenta il file .jar delle classi relative alle JCA. Nella versione relativa a
Windows, si nota, al suo interno, una classe di nome com.sun.comm.Win32Driver che
rappresenta l'implementazione dell'interfaccia javax.comm.CommDriver relativa al sistema
operativo utilizzato. In fase di installazione, questo file deve essere posizionato nella
subdirectory in cui sono contenute le classi del JDK (C:\j2sdk1.4.2_05\ jre\lib\ext)
• Win32Com.dll : Nella implementazione del metodo initialize() della classe Win32Driver, ci
dovrà essere il caricamento di tutte le librerie native utilizzate. Nel caso di Windows, tali
librerie sono rappresentate dal singolo file Win32Com.dll. Esso va posizionato nella
directory C:\j2sdk1.4.2_05\ jre\bin ;
• javax.comm.properties : Questo file di proprietà contiene proprio il nome del driver da
utilizzare e va posizionato nella directory C:\j2sdk1.4.2_05\ jre\lib . Esso contiene, oltre ad
un commento esplicativo, la riga Driver=com.sun.comm.Win32Driver.
E' molto importante eseguire l'installazione in modo corretto in quanto la mancanza del file
javax.comm.properties provoca un errore di mancato reperimento del Driver, mentre l'errata
posizione
del
file
.dll
fa
sì
che
non
vengano
trovate
le
varie
porte.
4
author: Giulio De Meo
JAVA ARCHIVE FILES (JAR)
I files JAR rappresentano il modo standard di archiviare e trasferire le applicazioni Java. Si puo'
archiviare cio' che si vuole in un file JAR: files di tipo .class, .java, fotografie, canzoni, testi...
Java e' in grado di gestire files JAR e puo' caricare ed eseguire i files .class direttamente
dall'archivio, specificandone l’indirizzo nel CLASSPATH .
I files sono compressi in un archivio secondo lo standard ZIP. Lo SDK della Sun comprende una
utility - il comando jar - che ci consente di creare e gestire archivi JAR.
Creazione di un archivio :
Supponiamo di avere una serie di files nella cartella “fold” della directory corrente
Da Dos, con il comando
jar
–cvf
arch.jar
fold
crea un file “arch.jar” che contiene tutti i files contenuti in “fold”, comprese tutte le eventuali
sotto-directories.
Estrazione di un archivio
jar
-xvf
arch.jar
fold
estrae tutti i files dall'archivio (provenienti dalla cartella fold) e li ripristina nella cartella fold della
directory corrente.
Visualizzazione del contenuto di un archivio
jar
-tvf
arch.jar
mostra il contenuto dell'archivio.
La forma generale del comando e' quindi:
jar -opzioni nomearchivio [path],[..],[..]
E' quindi possibile archiviare piu' directories simultaneamente (il comando "jar -cvf arch.jar"
archivia tutto il contenuto dell'albero a partire dalla directory corrente), ripristinarle in tutto o
solo in parte (indicando quali directories vogliamo estrarre) o semplicemente visualizzare (in
tutto o in parte) il contenuto di un archivio.
Il comando jar aggiunge automaticamente una directory dal nome META-INF ad ogni archivio.
Essa contiene almeno un file: MANIFEST.MF: questo file puo' contenere una 'packing-list' , oltre
che una serie di attributi definibili dall'utente. Con l'opzione m, possiamo ordinare al JAR di
creare un Manifest.mf uguale ad un nostro file Miomanifesto.mf precedentemente creato , nel
quale ad esempio specifichiamo il nome della classe che contiene il metodo main(), l’autore, …
IL file jar cosi creato sarà un EXECUTABLE JAR FILE ( file eseguibile che lancia la nostra
l’applicazione direttamente).
Scriviamo (anche con Notepad) il file MIOMANIFESTO.MF, che contiene le seguenti istruzioni
Manifest-Version: 1.0
Created-By: Giulio De Meo
Main-Class: ClasseconMain
A questo punto possiamo preparare il nostro archivio o l’eseguibile, con l'istruzione
5
author: Giulio De Meo
jar
cvmf
MIOMANIFESTO.MF
Eseg.jar
fold
(N.B.: m deve precedere f) viene creato l'archivio Eseg.jar che
comando
java
-jar
puo' essere avviata con il
Eseg.jar
Ancor meglio, in ambiente Windows si puo' avviare l'applicazione semplicemente facendo click col
mouse sul nome del file,
purchè sul computer sia installata la cioè la Java2 Runtime
Environment (JRE SE v. 1.4.2_05 comprensiva del Java Plug in ), necessaria ad avviare i Jar
eseguibili e le Applet scritti in linguaggio Java.
Se non è cosi si puo creare un file.bat (anche con il Notepad, purchè si salvi come .bat ) ad
esempio “Go.bat” , in cui si scrive la riga
c:\j2sdk1.4.2_05\bin\java -jar .\arch.jar
il primo percorso indica dove è ubicata la jvm e il secondo dov’ è il tuo archivio jar.
Doppio click sull’ icona del file Go e parte l’ applicazione.
Attenzione: bisogna mettere il file Eseg.jar ed il Go.bat dentro la stessa cartella.
Esempio:
Volendo creare un file visualizzatore di immagini eseguibile ( Photo.jar) che ha file sorgente
FotoView.java contenuto, insieme alle 6 foto da visualizzare ed al file Manifest in una stessa
cartella di nome FCartel,
Fig.1 Contenuto Cartella “Fcartel “
Dal prompt di Dos basta entrare nella directory C:\ … \ Fcartel \ e da qui lanciare il comando jar
jar
cvmf
Manifest.mf
Photo.jar
*.class
*.jpg
avrei potuto scrivere semplicemente
jar
–cvmf
Manifest.mf
Photo.jar
*.*
ma questo avrebbe incluso nell’archivio jar anche il file manifest creato da me.
6
author: Giulio De Meo
Fig 2 Esecuzione comando jar dal prompt di Dos
ecco creato il file eseguibile “Photo.jar” che si avvia con un doppio click
Volendo vedere il suo contenuto, basta aprirlo con Winzip
Fig.3 Contenuto del file Photo.jar in una finestra di Winzip
file Manifest.mf
7