Questa è una vecchia versione del documento!
Indice
FAQ (Frequently Asked Questions)
Domande su esercitazioni in laboratorio
Come si settano i parametri d'avvio di Java su Eclipse (i "command line arguments")?
Supponendo di avere una classe:
public class Less { public static void main(String[] args) { ... } }
compilata da shell con il comando:
->javac Less.java
e avviata da shell con:
->java Less pippo.txt /usr/share/dict/words
allora args.length sarà uguale a 2, mentre in args[0] sarà contenuta la
stringa “pippo.txt” e in args[1] la stringa “/usr/share/dict/words”.
Per settare i parametri d'avvio di Java su Eclipse, cliccare in
successione dal menù:
run open run dialog arguments
e inserire gli argomenti separati da spazio (nell'esempio precedente,
pippo.txt /usr/share/dict/words)
Come fare per avviare Eclipse se all'avvio segnala "workspace in uso"?
A causa di una chiusura errata di Eclipse (ad es., tramite il comando
“kill”) può succedere che all'avvio mostri questo messaggio. Per
sbloccarlo è necessario rimuovere il file .lock che si trova nella
directory .metadata del workspace. Ad es.:
-> rm [PATH]/workspace/.metadata/.lock
Dove stanno i file .java e .class in un progetto creato con Eclipse e come si avvia da shell un programma creato tramite Eclipse?
Al momento della creazione di un project in Eclipse, nella seconda schermata appare un'opzione “project layout”:
- use project folder as root for sources and class files
- create separate folders for sources and class files
che di default (modificabile) è settata sulla seconda scelta. In
quest'ultimo caso, Eclipse crea due sottodirectory del progetto,
chiamate “src” e “bin”. La prima contiene i sorgenti, cioè i file .java,
la seconda gli “eseguibili” (in realtà, file bytecode con estensione
.class). Se si usano dei package, vengono create anche sottodirectory
per ogni package sia sotto “bin” che sotto “src”. Se, invece, si usa
un'unica root directory, sia i file .java che .class sono nella
directory del progetto.
Supponiamo di aver creato in Eclipse il progetto “projectname” che ha un
unico file “Foo.java”. Nel caso in cui si avvii il programma da Eclipse,
la current directory è in tutti i casi [PATH]/workspace/projectname/.
Nel caso in cui si avvi da shell (supponiamo, per semplicità, di non
usare il parametro 'classpath'), allora ci sono vari casi per avviare il
programma:
se si è scelto di usare directory separate per bin e src:
e si definisce il package "foo":
current directory = [PATH]/workspace/projectname/bin
comando = java foo.Foo
altrimenti:
current directory = [PATH]/workspace/projectname/bin
comando = java Foo
con un'unica root directory per sorgenti e file .class:
e si definisce il package "foo":
current directory = [PATH]/workspace/projectname/
comando = java foo.Foo
altrimenti:
current directory = [PATH]/workspace/projectname/
comando = java Foo
In tutti i casi (sia da Eclipse che da shell), se si vuole aprire un file usando un path relativo, ad es. tramite il comando 'FileInputStream in = new FileInputStream(“pippo.txt”);', bisogna che il file “pippo.txt” stia nella current directory. Per ottenere il nome della current directory da Java, si può usare il comando: System.getProperty(“user.dir”);
4)Quali sono le convenzioni per i nomi in Java?
-classi: prima lettera maiuscola class Raster; class ImageSprite;
-interfacce: prima lettere maiuscola interface RasterDelegate; interface Storing;
-metodi: prima lettera minuscola run(); runFast(); getBackground();
-variabili: prima lettera minuscola int i; char c; float myWidth;
Per i nomi di classi, interfacce, metodi e variabili si usa la notazione “a gobba di cammello”: ciascuna lettera iniziale di ogni parola interna al nome deve essere maiuscola.
-costanti: tutte maiuscole, con parole interne separate dal simbolo underscore “_” static final int MIN_WIDTH = 4; static final int MAX_WIDTH = 999; static final int GET_THE_CPU = 1;
-package: nomi minuscoli com.sun.eng com.apple.quicktime.v2 edu.cmu.cs.bovik.cheese
Vedere anche: http://java.sun.com/docs/codeconv/
