Sei sulla pagina 1di 4

Compilazione di programmi in Java e in C

da linea di comando
Nicola Vitacolonna
vitacolo@dimi.uniud.it
http://www.dimi.uniud.it/~vitacolo
Corso di Laurea in Biotecnologie
Università degli Studi di Udine

6 novembre 2002

1 Introduzione
In questa breve nota è spiegato come utilizzare i tool Java e C da linea di
comando, cioè da una finestra di terminale (o finestra DOS). Gli esempi
si riferiscono al sistema operativo Windows. Quando aprite la finestra di
terminale1 vi trovate davanti un prompt, cioè qualcosa di simile a

C:>

seguito da un cursore in attesa che scriviate qualcosa. La lettera C (potreb-


be anche essere diversa nel vostro sistema) indica il disco nel quale state
lavorando. Per cambiare disco dovete scrivere la lettera corrispondente se-
guita dai due punti, e premere il tasto Enter. Ad esempio, per spostarvi nel
disco D dovete scrivere D:, come segue:

C:>D:

Per cambiare directory usate il comando cd. Ad esempio, se volete spostarvi


nella directory \home\utenti (ossia nella directory utenti contenuta nella
directory home) all’interno del disco C, dovete scrivere:

C:>cd C:\home\utenti

Il carattere \ è usato come separatore tra le varie sottodirectory quando


indicate un percorso. Per passare dalla directory corrente a quella che la
contiene, scrivete cd .. (cd seguito da uno spazio e due punti). Per vedere
la lista dei file contenuti nella directory corrente usate il comando dir.
1
Dal menú Avvio scegliete Programmi, quindi Accessories e infine Command Prompt.

1
2 Java
2.1 Il compilatore javac
Quando, in BlueJ, compilate una classe o un progetto, BlueJ non fa altro
che eseguire il compilatore javac contenuto nella directory bin della distri-
buzione di Java presente nel calcolatore. Potete eseguire questo programma
direttamente da una finestra di terminale2 .
Innanzitutto bisogna assicurarsi di trovarsi nella directory che contiene i
file sorgente. Si ricorda che i file sorgente terminano col suffisso .java. Per
compilare uno di tali file, ad esempio LaMiaClasse.java, si usa il comando

C:>javac LaMiaClasse.java

Se avvengono errori durante la compilazione, il compilatore produce oppor-


tuni messaggi d’errore. Il risultato di una compilazione corretta è un file che
ha lo stesso nome del file sorgente, ma termina con il suffisso .class. Inol-
tre, vengono automaticamente compilati anche i file da cui il file specificato
dopo il comando javac dipende.
La sintassi del comando javac è3

javac [opzioni] hfile sorgentii

dove hfile sorgentii è una lista, separata da spazi, di uno o piú nomi di file
sorgente (come LaMiaClasse.java). Le opzioni cominciano di solito con il
carattere - e possono essere seguite da argomenti. Ad esempio, l’opzione

-d hdirectoryi

imposta hdirectoryi come cartella di destinazione per i file .class. Per


conoscere le varie opzioni e vedere altri esempi si consulti la documentazio-
ne del comando javac (potete trovare tali informazioni anche all’indirizzo
http://java.sun.com/j2se/1.4/docs/tooldocs/windows/javac.html).

2.2 L’interprete java


Se il programma Java che avete compilato è un’applicazione (ossia, esiste una
classe contenente un’implementazione del metodo main()), potete eseguire
il programma usando l’interprete java. La sintassi del comando è

java [opzioni] hnome classei [argomenti]

in cui hnome classei dev’essere il nome della classe (senza suffisso!) che
contiene il metodo main(). Se, ad esempio, LaMiaClasse.java contiene un
metodo main(), dopo averla compilata la si può eseguire con il comando
2
Purché le variabili d’ambiente PATH e CLASSPATH siano state correttamente impostate.
Si consultino eventualmente le note d’installazione di Java sul sito della Sun.
3
La presenza delle parti poste tra parentesi quadre è facoltativa.

2
C:>java LaMiaClasse
Ciascuno degli eventuali argomenti scritti dopo il nome della classe è inter-
pretato come un oggetto di tipo String da passare al metodo main(). La
segnatura del metodo main() è infatti:
public static void main(String[] args)
Come si vede, riceve in input un array (eventualmente vuoto) di stringhe.
Ad esempio, se si invoca LaMiaClasse con il comando
C:>java LaMiaClasse primoArg 3 abc
si avrà args[0] = "primoArg", args[1] = "3" e args[2] = "abc".
Tra le opzioni del comando java mette conto di segnalare l’opzione -jar,
usata per eseguire file .jar4 . Se, ad esempio, avete creato un archivio
LaMiaApplicazione.jar, potete eseguirlo con il comando
C:>java -jar LaMiaApplicazione.jar
È possibile consultare la documentazione dell’interprete java all’indirizzo
http://java.sun.com/j2se/1.4/docs/tooldocs/windows/java.html.

2.3 Il visualizzatore di applet appletviewer


Un applet è un programma Java fruibile attraverso una pagina web. Per
creare un applet avete bisogno almeno di creare una classe che estenda la
classe Applet del package java.applet e di creare un file in formato HTML
che contenga il codice per eseguire l’applet. BlueJ fa questo per voi quando
create un applet, cosicché non dovete preoccuparvi di imparare il linguaggio
HTML.
Per eseguire un applet da terminale si usa il comando appletviewer
seguito dal nome del file HTML associato all’applet. Ad esempio:
C:>appletviewer IlMioApplet.html

2.4 Il generatore di documentazione javadoc


Quando in BlueJ create la documentazione del codice di una classe o di
un progetto, BlueJ invoca il programma javadoc. Potete eseguire tale
programma direttamente dalla linea di comando, usando la sintassi
javadoc [opzioni] hlista filei
dove hlista filei è una lista di uno o piú file sorgente (con il suffisso .java).
Le opzioni e diversi esempi relativi all’utilizzo di javadoc si posso-
no trovare all’indirizzo http://java.sun.com/j2se/1.4/docs/tooldocs/
windows/javadoc.html.
4
Andate a vedere, nella dispensa introduttiva su BlueJ, la parte relativa alla crezione
di applicazioni autonome.

3
3 Compilazione ed esecuzione di programmi C
I computer del laboratorio dispongono di un compilatore C chiamato gcc.
Potete scrivere un programma in C usando un qualunque editor di testo
disponibile sul calcolatore (ad esempio, il Notepad di Windows), salvando
il file che contiene il codice con un nome avente suffisso .c. Supponiamo
ad esempio di aver creato un file chiamato hello.c che contiene il seguente
programma:

int main() {
printf("Ciao, mondo!\n");
return 0;
}

Per compilarlo con gcc bisogna spostarsi nella directory che contiene il file
hello.c e scrivere:

C:>gcc hello.c

Ciò genera (se non sono stati commessi errori) un programma eseguibile
chiamato a.exe. È probabile che preferiate dare un altro nome a tale pro-
gramma. Per fare ciò si usa l’opzione -o seguita dal nome del file oggetto.
Ad esempio:

C:>gcc -o hello hello.c

crea un file eseguibile chiamato hello.exe (potete verificare ciò usando il


comando dir).
Per eseguire il programma, dopo averlo compilato, è sufficiente scriverne
il nome (senza il suffisso .exe). Ad esempio, per eseguire il precedente
programma basta scrivere

C:>hello

Un utile allenamento consiste nel risolvere in C gli esercizi incontrati nel


corso delle esercitazioni.
Un’ultima considerazione: C e Java, nonostante condividano alcuni aspet-
ti di sintassi e grammatica, sono due linguaggi molto diversi. Anzi, corri-
spondono addirittura a due paradigmi di programmazione differenti (C è un
linguaggio imperativo, Java è orientato agli oggetti). Cercate di mantenere
una chiara distinzione tra le due metodologie di programmazione!