PDA

View Full Version : [Java] Package, import


NaNNy86
18-02-2006, 14:13
Salve a tutti, volevo chiedervi perchè non mi compila il mio file Test ( contenete il main del programma ). Il fatto strano è che nel pc di facoltà mi compilava tutto perfettamente, e invece qui a casa no: secondo me è la posizione nelle cartelle di lavoro...

Allora questo è il file Test.java che si trova nella cartella C:\JavaEsercizi\Laboratorio :
import vehicle.*;

public class Test{
public static void main(String args[]){
Vehicle a[] = new Vehicle[3];

a[0] = new Vehicle("ASD123CDF", "OPEL", "CORSA", 4);
a[1] = new Car("QWE234RTY", "FIAT", "PUNTO", 5, 5);
a[2] = new Truck("CVB456TYU", "FORD", "TRUCK", 2, 300);

for(int i=0; i<a.length; i++){
System.out.println(a[i]);
}
}
}


Gli altri due file che dovrebbero far parte dello stesso package stanno nella cartella C:\JavaEsercizi\Laboratorio\vehicle , e questi sono sicuro che sono fatti bene, infatti me li compila senza problemi. Comunque ve ne posto uno ( gli altri sono simili, in quanto stiamo facendo esercizi sull'ereditarietà ):

Vehicle.java:

package vehicle;

public class Vehicle {
protected String Targa;
protected String Marca;
protected String Modello;
protected int NumeroPosti;

public String getTarga(){
return Targa;
}
public String getMarca(){
return Marca;
}
public String getModello(){
return Modello;
}
public int getNumeroPosti(){
return NumeroPosti;
}
public String ToString(){
return "I dati del veicolo sono: targa " +getTarga() + ", marca " + getMarca() + ", modello " + getModello() + ", numero di posti " + getNumeroPosti();
}
public Vehicle(String Ta, String Ma, String Mo, int N ) {
Targa = Ta;
Marca = Ma;
Modello = Mo;
NumeroPosti = N;
}
}


Secondo me l'errore stà nella prima stringa: devo specificare anche le altre cartelle in cui stanno i file oppure no?
Grazie in anticipo

andbin
18-02-2006, 14:30
Salve a tutti, volevo chiedervi perchè non mi compila il mio file Test ( contenete il main del programma ). Il fatto strano è che nel pc di facoltà mi compilava tutto perfettamente, e invece qui a casa no: secondo me è la posizione nelle cartelle di lavoro...
Nella variabile di ambiente CLASSPATH devi avere, tra gli altri path (se ci sono), anche il "." (punto) che fa riferimento alla directory corrente. Così, quando sei in "C:\JavaEsercizi\Laboratorio" e compili il file Test.java che usa le classi del package vehicle (che stanno correttamente e giustamente nella sottodirectory vehicle), il compilatore può trovarle.

Comunque ti consiglio di usare Ant, che semplifica molto la fase di build. ;)

NaNNy86
18-02-2006, 14:39
Nelle variabili d'ambiente, alla voce CLASSPATH, ho questa directory: C:\Programmi\Java\jre1.5.0_06\lib\ext\QTJava.zip

Però... non ho ben capito cosa devo fare :stordita:

Dove devo aggiungere il . ?

andbin
18-02-2006, 17:39
Nelle variabili d'ambiente, alla voce CLASSPATH, ho questa directory: C:\Programmi\Java\jre1.5.0_06\lib\ext\QTJava.zip

Però... non ho ben capito cosa devo fare :stordita:

Dove devo aggiungere il . ?
Devi fare in modo che CLASSPATH contenga:
.;C:\Programmi\Java\jre1.5.0_06\lib\ext\QTJava.zip
Come modificare la variabile di ambiente dipende dal sistema operativo e da quando vuoi impostarla. Se vuoi impostarla fissa in modo globale e hai Windows 2000/XP, vai nelle Proprietà del sistema, tab "Avanzate", poi "Variabili d'ambiente".
Altrimenti, se vuoi, puoi creare un semplice file .bat (da lanciare quando vuoi) che faccia l'impostazione della variabile.

pinok
19-02-2006, 01:30
compila con

javac -classpath . Test.java

NaNNy86
20-02-2006, 10:48
grazie mille a tutti :ave: