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??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?![]()
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.