Ritorniamo un attimo alle basi di Java.
Per scrivere un’applicazione utilizzando tale linguaggio non ci sono problemi: è sufficiente disporre di un editor di testo e di qualche conoscenza sulle regole base per i nomi dei file. Ovviamente, assieme a questi strumenti non ci dobbiamo mai dimenticare la documentazione Java, sempre disponibile on-line. Ma come si fa per compilare un’applicazione Java? E’ proprio in questo articolo che vediamo passo passo come arrivare alla creazione dei famosi e fatidici file .class, che rappresentano gli eseguibili di qualsiasi applicazione scritta in Java.
Per prima cosa è necessario aver installato sulla propria macchina una versione qualunque della JDK (Java Development Kit, ovvero tutto il necessario per poter sviluppare in Java). La versione con cui io sviluppo (e non è proprio l’ultima versione) e di cui propongo gli esempi è la 1.4. La si può scaricare dal sito della Sun dedicato a Java.
Una volta inatallata, sarà nostra cura andare ad impostare alcune variabili d’ambiente per semplificarci la vita: le due variabili d’ambiente che dovremo modificare (o creare, se non esistono) si chiamano PATH e CLASSPATH. In realtà, nessuna delle due è necessaria, ma la loro presenza ci aiuta: la prima (quella che io, solitamente, imposto sempre) serve a far sì che i comandi per la compilazione e l’esecuzione siano sempre disponibili da qualunque posizione ci troviamo; la seconda (che io, solitamente, non imposto per praticità) serve ad indicare alla JVM e al compilatore dove sono posizionate le eventuali librerie esterne da agganciare all’applicazione. Supponendo di aver installato la JDK nel seguente percorso (faccio sempre riferimento a Linux) “/home/j2sdk1.4.2/”, dovremo modificare la variabile PATH in questo modo:
path=$path:/home/j2sdk1.4.2/bin
Questa riga di codice potremmo inserirla alla fine del file .bashrc della nostra home directory, in modo che ad ogni avvio del sistema, essa venga correttamente valorizzata. Per Windows il discorso è diverso: dovremo andare nella scheda “Proprietà” delle Risorse del Computer, quindi scegliere “Avanzate”, selezionare il pulsante “Variabili d’ambiente” e modificare la variabile PATH che dovrebbe già essere valorizzata, aggiungendo un punto e virgola ( ; ) in coda seguito dal percorso completo della directory “bin” che si trova dentro alla directory di installazione della JDK (per eventuali informazioni aggiuntive più dettagliate, lasciate pure un commento).
Lo stesso discorso vale per la variabile CLASSPATH (che solitamente non è presente nel sistema, ma che dovremo, eventualmente, creare noi): è sufficiente farla puntare alla directory “jre/lib” della directory di installazione.
A questo punto siamo pronti per compilare. Supponiamo, quindi, di avere scritto il nostro bel programma Java e di averlo salvato nella directory /home/progetti/ con il nome di HelloWorld.java. Non ci resta che posizionarci all’interno di tale directory e lanciare a mano il seguente comando:
javac HelloWorld.java
Una nota particolare per gli utenti Windows: il nome del file deve essere digitato correttamente, rispettando le lettere mauiscole e le minuscole, altrimenti otterremo dei messaggi d’errore.
Se la compilazione è andata a buon fine, il file .class è stato creato nella directory in cui ci troviamo, altrimenti otterremo un messaggio d’errore che ci informa di eventuali problemi riscontrati. Uno dei più classici problemi è quello relativo ai package: un messaggio del tipo “NoClassDefFoundError” è tipico se si programma utilizzando i package. In questi casi, dovremmo fare un po’ di attenzione: posizionarci all’esterno della directory da cui comincia l’indicazione della clausola package e lanciare il comando da lì. Ad esempio, se la nostra classe HelloWorld ha la seguente clausola package:
package it.mioprogetto;
Allora dovremo posizionarci all’esterno della directory “it” (se, quindi, tale directory ha il seguente percorso assoluto “/home/progetti/it“, dovremo posizionarci in “/home/progetti/“) e dare il seguente comando:
java it/mioprogetto/HelloWorld.java
I problemi possono nascere anche nel caso in cui la nostra applicazione sia composta da più classi (magari, relazionate tra di loro in modo biunivoco). In questi casi, il modo migliore per procedere alla compilazione è quella di lasciar fare al comando stesso tutte le considerazioni. Non preoccupiamoci, quindi, do dover compilare tutte le classi, una per una a mano, ma utilizziamo semplicemente questo comando:
javac *.java
ovviamente, sempre tenendo presenti le considerazioni fatte prima sulla posizione, per tutti i casi in cui si utilizza la clausola package.
Altre opzioni sono disponibili per il comando javac, come ad esempio il linking di particolari librerie che non siano raggiungibili direttamente dalla posizione in cui ci troviamo o tramite la variabile CLASSPATH: in questo caso è possibile specificare direttamente sulla linea di comando il percorso in cui cercare le classi della libreria tramite l’opzione “-classpath“. Per una più ampia panoramica delle opzioni disponibili è sufficiente digitare il comando javac da solo opure seguito dall’opzione “-help“.
Opzioni interessanti da provare sono “-deprecation” e “-d“. Ancora una volta non mi rimane che augurarvi una Buona Programmazione.
Tags:class classpath compilatore eseguibili java javac jdk path variabili
7 Risposte
marco
November 2nd, 2007 at 17:28
1ciao, mi piacerebbe fare uno scambio link,questo è il mio:
http://mark-be.blogspot.com/
IL BLOG DELLA SIMPATIA
fammi sapere
BradipoMissile
November 3rd, 2007 at 15:02
2@ marco
Ciao Marco, benvenuto nel mio blog e grazie per il tuo interessamento!
Poichè sto proprio ora studiando un sistema di scambio link da avviare all’interno della mi arisorsa web, per favore scrivimi una mail a info@bradipomissile.net e illustrami cosa intenderesti fare tu. Poi io ti rispondo in privato e vediamo di arivare ad un compromesso, ok?
Grazie ancora della visita ed a presto!
Filippo
January 29th, 2008 at 13:54
3ciao senti io ho un problema: dopo che ho fatto tutto mi dice: Primo.java(che è il mio programma):1: expected
import.java.lang.*;
1error
che devo fare???non capisco grazie
Filippo
January 29th, 2008 at 14:00
4niente ho risolto grazie mille!!!!!!
BradipoMissile
January 29th, 2008 at 16:38
5@ Filippo
Sono contento che tu abbia risolto da solo il tuo problema, mi auguro cmq che la risorsa BradipoMissile ti sia stata di qualche aiuto!
Grazie per aver consultato il nostro blog e… torna a visitarci presto!
LeleFT
January 29th, 2008 at 17:54
6@Filippo
Ciao. Dal tuo messaggio sembra che tu importi esplicitamente il package java.lang… questo non è un errore, ma non ha alcun senso farlo: java.lang è sempre importato automaticamente dal compilatore, senza doverlo importare esplicitamente… si chiama, infatti, package di default.
Ciao.
muriel
November 2nd, 2008 at 13:40
7Ciao,
ho trovato per caso il tuo blog cercando su altavista un compilatore Java. Il mio problema è che ho scaricato TexPad per esercitarmi nella programmazione per l’esame di informatica e quando scelgo il comando compila java mi dà errore. Potresti aiutarmi per favore? L’esame è a fine mese e io non sono in grado di fare niente su java…
RSS Iscriviti ai Feed dei commenti di questo articolo · TrackBack URI
Lascia un commento... please!!!
Autori
Categories
Calendario
Tag Cloud
Sondaggio
Blog Amici
Gente "Avanti"
Siti Interessanti
Benvenuto!
Pensieri / Aggiornamenti
Qualche statistica
Blog segnalato su
Recent Posts
Recent Comments
Meta