Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dificuldades para entender a criação e utilização dos arquivos JAR

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
  1. 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.

  1. 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
  2. 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!

  3. 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!!!

2 respostas

Boa noite amigos... novamente e rapidamente!

Esse item pode ser fechado.... Acabo de fazer funcionar a bagaça executando!! :)

C:\User\Jefferson\java -cp b.jar b.B

ao invés de:

C:\User\Jefferson\java -jar b.jar
solução!

Opa Jeferson !

Tranquilo, o que você tiver de dúvida pode abrir um novo tópico.

Abraços