Criando uma Aplicação Java Simples
Vamos começar criando uma aplicação Java simples que empacotaremos em um arquivo JAR. Isso nos ajudará a demonstrar e, posteriormente, corrigir o erro 'no main manifest attribute'.
Criar a Classe Java
Primeiro, crie um diretório para nossos arquivos fonte Java e navegue até ele:
cd ~/project/src/com/example
Agora, abra o editor e crie um novo arquivo chamado HelloWorld.java neste diretório:
- Clique no ícone "Explorer" na barra lateral esquerda da WebIDE
- Navegue até
/home/labex/project/src/com/example
- Clique com o botão direito e selecione "New File" (Novo Arquivo)
- Nomeie o arquivo
HelloWorld.java
Adicione o seguinte código ao arquivo HelloWorld.java:
package com.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Este é um programa Java básico com um método main que imprimirá "Hello, World!" no console quando executado.
Compilar a Classe Java
Agora, vamos compilar nossa classe Java. Retorne ao terminal e navegue até o diretório raiz do projeto:
cd ~/project
Compile o arquivo Java usando o comando javac:
javac -d . src/com/example/HelloWorld.java
Este comando compila o arquivo fonte Java e coloca o arquivo de classe compilado na estrutura de diretórios apropriada com base no nome do pacote.
Você agora deve ter um arquivo de classe compilado em ~/project/com/example/HelloWorld.class. Você pode verificar isso com:
ls -l com/example/
A saída deve mostrar o arquivo HelloWorld.class:
total 4
-rw-r--r-- 1 labex labex 426 [date] HelloWorld.class
Criar um Arquivo JAR Básico Sem um Manifest
Agora, vamos criar um arquivo JAR sem especificar uma classe principal no manifest. Isso nos permitirá reproduzir o erro 'no main manifest attribute':
jar cf HelloWorld.jar com/
Este comando cria um arquivo JAR chamado HelloWorld.jar que inclui o arquivo de classe compilado.
Tentar Executar o Arquivo JAR
Agora que criamos nosso arquivo JAR, vamos tentar executá-lo:
java -jar HelloWorld.jar
Você verá a mensagem de erro:
no main manifest attribute, in HelloWorld.jar
Este é o erro que estamos aprendendo a corrigir. A JVM não consegue encontrar a classe principal para executar porque não a especificamos no manifest do JAR.