Estou com certa dificuldade para criar e utilizar corretamente os arquivos JAR. Preciso de ajuda para entender melhor a Atividade #3, no item "Para saber mais: arquivos JAR". Para isto farei uma descrição passo a passo o que eu fazendo e os resultados obtidos e gostaria que você me corrigissem no ponto que estou pecando considerando a seguintes informações.
Estrutura de Pasta
scjp
└── b
│ ├── B.class
│ └── B.java
│ └── C.class
│ └── C.java
├── A.class
└── A.java
Classe A
class A{
public static void main(String[] args){
System.out.println("Classe A");
}
}
Classe B
package b;
class B{
public static void main(String[] args){
System.out.println("Classe B");
}
}
Procedimento: 1. Arquivos compilados com sucesso
C:\User\Jefferson\javac A.java
C:\User\Jefferson\javac b\B.java
- Execução do main de ambas com sucesso
C:\User\Jefferson\java A Classe A C:\User\Jefferson\java b.B Classe B Classe C
ESSE É O PONTO QUE ESTOU CONFUSO!
De acordo com o texto "Basta criar um arquivo chamado Manifest.mf com a seguinte instrução indicando a classe com o método main: Main-Class: b.B"
OK. Mas ONDE é que eu crio esse arquivo Manifest.mf? Dentro da pasta scpc/b? ou na raiz scpc? ou eu posso passar a pasta completa onde esta o manifest?
Eu fiz o seguinte (e não deu certo) como tentativa de criação do JAR para classe B.
Criei o arquivo Manifest.mf dentro da pasta principal scjp com o seguinte conteúdo:
Manifest-Version: 1.0 Created-By: 1.8.0_101 (Oracle Corporation) Main-Class: b.B
Em seguida tentei criar o JAR para classe B
C:\User\Jefferson\jar -cfm b.jar Manifest.mf b
Resultado: O arquivo b.jar foi gerado com sucesso contendo a pasta META-INF que, por sua vez, continha o arquivo MANIFEST.mf com o seguinte conteúdo:
Manifest-Version: 1.0 Created-By: 1.8.0_101 (Oracle Corporation)
Perceba que a linha Main-Classe: b.B não esta presente!
Em seguida tentei executar usar o JAR digitando:
C:\User\Jefferson\java -jar b.jar
O resultado foi:
nenhum atributo de manifesto principal em b.jar
O que eu fiz de errado meus amigos???
Abraço!!!