Originariamente inviato da Dreamer89
Come da titolo. Ho un package, con all'interno 2 .java. Uno riesco a compilarlo e quindi a creare il class, mentre con l'altro non riesco perchè non mi riconosce l'oggetto della classe dell'altro file che si trova sempre nello stesso package... come proseguo?
Le classi sono in un package, quindi hai creato la/e directory che "riflettono" la struttura dei package?? E la directory che a sua volta contiene il package "radice" è in classpath??

Ok, probabilmente non ti è chiaro. Esempio:

file Paperino.java:

package com.pippo;
public class Paperino { Pluto p; }


file Pluto.java:

package com.pippo;
public class Pluto { }

I file .class generati devono stare in un path com/pippo, questo è tassativo.

Quindi potresti avere un path del tipo:

C:\Java\Esempi\com\pippo

che contiene i 2 sorgenti.

In "classpath" ci deve essere in un modo o nell'altro (con una specifica assoluta o relativa) un riferimento alla directory C:\Java\Esempi che è quella che contiene il package "radice".

Quindi ci si posiziona in C:\Java\Esempi

e si dà per esempio:

javac -classpath . com\pippo\Paperino.java

E se Paperino avesse un main(), per avviarlo si potrebbe fare:

java -classpath . com.pippo.Paperino

se si è in C:\Java\Esempi oppure con riferimento assoluto:

java -classpath C:\Java\Esempi com.pippo.Paperino


Nota: non so cosa stai facendo, come e con con stai compilando (se a "mano" come nell'esempio sopra ... con un IDE) o altro. Ma non importa il concetto corretto e valido è quello che ho appena descritto. Le regole sono quelle e da lì non si scappa.