Strumenti Utente

Strumenti Sito


lpr-b:lpr-b-09:faq

Questa è una vecchia versione del documento!


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


3)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/

lpr-b/lpr-b-09/faq.1253801634.txt.gz · Ultima modifica: 24/09/2009 alle 14:13 (16 anni fa) da Andrea Corradini

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki