Para compilar classes em diferentes pacotes faça:
pasta raiz:\> javac nomeDoPacoteDaClasseMain\NomeDaClasse.java
Para executar as classes, faça:
pasta raiz:\> java -cp . nomeDoPacoteDaClasseMain.NomeDaClasse
ou faça:
pasta raiz:\> java -classpath . nomeDoPacoteDaClasseMain.NomeDaClasse
Use a importação para ‘carregar’ a classe do outro pacote caso estejam em pacotes (pastas) diferentes.
Exemplo 1 - Os arquivos estão na mesma pasta (pacote): Nesse caso não é necessário informar o pacote.
public class Student {
private String name;
private int age;
public void signingUp(String name, int age){
this.name = name;
this.age = age;
}
public void showData(){
System.out.println("Student: " + this.name);
System.out.println("Age: " + this.age);
}
}
public class SignUpPage {
public static void main(String[] args){
Student student = new Student();
student.signingUp("Bob", 27);
student.showData();
}
}
Exemplo 2 - Os arquivos estão em pacotes diferentes: eu tenho que importar a classe
a) Sem importar:
C:\jcp8\codificacao\respostaGUJ
λ javac -encoding UTF-8 pacote01/SignUpPage.java
pacote01\SignUpPage.java:6: error: cannot find symbol
Student student = new Student();
^
symbol: class Student
location: class SignUpPage
pacote01\SignUpPage.java:6: error: cannot find symbol
Student student = new Student();
^
symbol: class Student
location: class SignUpPage
2 errors
C:\jcp8\codificacao\respostaGUJ
λ
b) Importando:
C:\jcp8\codificacao\respostaGUJ
λ javac -encoding UTF-8 pacote01/SignUpPage.java
C:\jcp8\codificacao\respostaGUJ
λ java SignUpPage
Student: Bob
Age: 27
C:\jcp8\codificacao\respostaGUJ
pacote02
package pacote02;
public class Student {
private String name;
private int age;
public void signingUp(String name, int age){
this.name = name;
this.age = age;
}
public void showData(){
System.out.println("Student: " + this.name);
System.out.println("Age: " + this.age);
}
}
pacote01
package pacote01;
import pacote02.Student;
public class SignUpPage {
public static void main(String[] args){
Student student = new Student();
student.signingUp("Bob", 27);
student.showData();
}
}