Originariamente inviato da ni_co_opla
la mia domanda per chiunque mi voglia dare una mano e' questa:

Antefatto.

Ho due semplici classi Cake e Pie prese da un libro su java.

Per come le ho implementate diciamo che un oggetto istanza della classe Cake invoca un metodo (ovviamente public) di Pie.

Salvo i files in due cartelle distinte.

1) se non inserisco le due classi in nessun package tutto funziona

2) se dichiaro che Pie fa parte di un package ,attraverso l'import e aggiungenndo un opportuno classpath tutto funziona

3) SE INVECE DICHIARO IN CAKE CHE CAKE FA PARTE DI UN PACKAGE NON RIESCO ASSOLUTAMENTE A COMPILARE

ALLORA MI CHIEDO SONO IO CHE IN QUALCHE MODO SBAGLIO OPPURE DEVO DEDURRE CHE
QUANDO SCRIVO CLASSI CHE FANNO PARTE DI UN PACKAGE , QUESTE CLASSI NON POTRANNO MAI INVOCARE METODI (E FARE ALTRO) DI CLASSI CHE A LORO VOLTA NON SONO INSERITE IN UN PACKAGE
Allora ... calma. Innanzitutto bisogna fare alcune premesse (che non so se conosci oppure no).

a) La struttura dei package si deve "riflettere" nella struttura delle directory sul file-system. Se per una classe dichiarari un package 'prova', allora il file .class deve stare sotto una directory 'prova'.

b) Devi verificare se la classe l'hai dichiarata 'public' oppure no:
codice:
class UnaClasse  { }

public class UnaClasse  { }
Nel primo caso la classe ha visibilità solo a livello di package (cioè solo da altre classi nello stesso package), nel secondo caso, è visibile da qualunque altra classe (anche in altri package).

c) Le classi devono essere "visibili" dalla JVM. Se hai una classe prova.Prova (quindi in un package 'prova') e il class si trova in C:\esempio\prova\Prova.class, allora C:\esempio deve essere in 'classpath'.