Originariamente inviato da energie
Ora spiegatemi,anzi illuminatemi,quando devo importare altri class(come in questo caso) devo creare un percorso particolare?
La questione è sempre la solita ... quella di capire come vanno trattati i package e il "classpath".
La prima regola è che se una classe è in un package, allora a livello di file-system i nomi dei package si devono "riflettere" nella struttura delle directory.
Ho un file Pippo.java che contiene:
codice:
package com.topolinia;
public class Pippo { }
Il file .class potrebbe essere messo (su Windows) in:
codice:
C:\
|
+-- prove
|
+-- com
|
+-- topolinia
\
Pippo.class
com\topolinia è tassativo che deve essere così.
E in "classpath" ci deve essere la directory "C:\prove" cioè la directory "base" che contiene il package.
Vediamo la import. import serve per importare tipi in altri package. Se una classe non è definita in un qualche package (non ha la dichiarazione di package), allora è nel package "un-named" (senza nome).
Risultato: non si possono importare tipi nel package un-named (dopotutto se il package non ha nome .... come lo importi???).
Caso semplice:
Se hai 2 classi senza alcun package es:
codice:
C:\
|
+-- prove
\
Pippo.java
Pippo.class
Pluto.java
Pluto.class
Per far sì che entrambe siano visibili, è sufficiente che in "classpath" ci sia: o il '.' (directory corrente) ma solo se si avvia la JVM restando in C:\prove) o esattamente la directory "C:\prove". O anche un path relativo che dipende da dove ci si trova come directory corrente.