logo

Nenhum atributo principal do manifesto

Em um projeto Java, todo arquivo jar executável contém um método principal. Normalmente, ele é colocado no ponto inicial da aplicação. Para executar um método principal por meio de um arquivo jar autoexecutável, devemos ter um arquivo de manifesto adequado e envolvê-lo com nosso projeto no local apropriado. Esses arquivos possuem um atributo de manifesto principal que é usado para definir o caminho para a classe que possui o método principal.

Às vezes, temos um jar auto-executável e, quando tentamos executar o projeto, ele gera a seguinte mensagem de erro:

 Unable to execute jar- file: 'no main manifest attribute.' 

A mensagem de erro acima é lançada devido a uma entrada ausente de Main-Class no arquivo MANIFEST.MF.

Você pode encontrar esse problema em qualquer configuração baseada em Java projeto. Vamos discutir suas soluções:

Solução:

Vamos entender suas soluções em diferentes projetos:

Maven

Em Maven Project, esse problema pode ocorrer devido à entrada ausente da classe principal no arquivo MANIFEST.MF. Para superar esse problema, podemos defini-lo em nosso arquivo pom.xml colocando manualmente um plugin maven-jar em pom.xml.

 org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain 

No código acima, com.javatpoint.AppMain é nosso nome totalmente qualificado da classe principal. Você deve substituir o nome totalmente qualificado de acordo com seu caminho de classe. Para copiar o nome completo, clique com o botão direito no pacote que contém a classe principal e selecione Copiar nome totalmente qualificado .

Gradle

Se você estiver recebendo esse erro em seu projeto Gradle, poderá resolver isso colocando as seguintes entradas em seu construir.gradle arquivo:

 plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } } 

Aplicativo de inicialização Spring

Às vezes, esse erro pode ser encontrado em seu Bota Primavera projeto. É fácil resolver esse erro no projeto Spring Boot. Para corrigir esse erro no projeto SB, coloque a dependência maven-plugin sob a tag no arquivo pom.xml.

 org.springframework.boot spring-boot-maven-plugin 4.0.1 

Causa raiz do erro de nenhum atributo de manifesto principal

O 'erro sem manifesto principal' geralmente é causado se você mexeu no arquivo MANIFEST.MF localizado na pasta META-INF. Por padrão, ele possui a seguinte entrada:

 Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse 

Onde,

Versão do manifesto é a versão do arquivo de manifesto.

Construido por é o nome do seu PC.

Construir-Jdk é a versão do JDK instalada em sua máquina.

Criado por é o nome do plugin usado no IDE.

Ao executarmos o projeto, ele irá procurar a Classe Principal no arquivo MANIFEST.MF. Ele lançará a mensagem de erro 'Não foi possível executar o arquivo jar' se não encontrar a entrada. Quando executamos as soluções acima, a entrada da classe será atualizada automaticamente no arquivo de manifesto do projeto da seguinte forma:

 Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain