
Já sabemos que o Java possui pacotes da sua API e geralmente importamos classes do pacote java.util .
Nesse tutorial vamos mostrar como você criar seus próprios pacotes no: GNU/LINUX, *BSD, macOS e no WSL/Windows e importá-los para seus próprios projetos .
Suponhamos que você crie uma classe com um único método e deseja disponibilizá-lo para quem quiser importar:
vim MinhaClasse.java
Na primeira linha use a palavra reservada package seguido de espaço e o nome que você deseja para seu pacote, exemplo: MeuPacote; e depois crie sua classe com o(s) métodos que deseja compartilhar, exemplo public void meuMetodo(), que só retorna uma frase qualquer:
package MeuPacote;
public class MinhaClasse {
public void meuMetodo(){
System.out.println("Esse é o meu pacote!");
}
}Agora vamos criar o diretório do pacote já com essa classe com o comando:
javac -d . MinhaClasse.java
Note que dentro do seu projeto(nesse caso: sandbox) agora há um diretório de nome MeuPacote/ com os seguintes arquivos dentro e fora dele:
tree
sandbox/
sandbox/
├── MeuPacote
│ └── MinhaClasse.class
└── MinhaClasse.java
1 directory, 2 filesSe quiser já podemos até remover o arquivo sandbox/MinhaClasse.java e agora o projeto(sandbox) só haverá um diretório e dentro dele um arquivo MinhaClasse.java que não foi o que removemos e sim o arquivo dentro do diretório MeuPacote:
sandbox/
└── MeuPacote
└── MinhaClasse.class
1 directory, 1 fileAgora vamos importar nosso pacote em outro arquivo, um outro projeto que você esteja criando:
vim MeuPrograma.java
import MeuPacote.MinhaClasse;
public class MeuPrograma {
public static void main(String[] args) {
MinhaClasse obj = new MinhaClasse();
obj.meuMetodo();
}
}Ou seja, ao instanciar a classe do pacote e chamar o método, o mesmo é executado com sucesso:
javac MeuPrograma.java
java MeuProgramaPossível e provável saída:
Esse é o meu pacote!.
Vamos supôr que você tem uma nova classe e deseja adicionar ao seu pacote: MeuPacote
package MeuPacote;
public class NovaClasse {
public String novoMetodo(){
String name = "Só para exemplo";
return name;
}
}Agora rode:
javac -d . NovaClasse.javaSe quiser depois de rodar o comando, remova o arquivo:
rm ./NovaClasse.java
Agora no seu código MeuPrograma.java importe também essa classe NovaClasse:
import MeuPacote.MinhaClasse;
import MeuPacote.NovaClasse;
public class MeuPrograma {
public static void main(String[] args) {
MinhaClasse obj = new MinhaClasse();
NovaClasse obj2 = new NovaClasse();
obj.meuMetodo();
System.out.println(obj2.novoMetodo());
}
}Após compilar e rodar a possível saída será:
Esse é o meu pacote!
Só para exemploSe quisésse importar todas as classes do seu pacote, basta usar: import MeuPacote.*;:
MeuPrograma.java
import MeuPacote.*;
public class MeuPrograma {
public static void main(String[] args) {
MinhaClasse obj = new MinhaClasse();
NovaClasse obj2 = new NovaClasse();
obj.meuMetodo();
System.out.println(obj2.novoMetodo());
}
}