Nenhum atributo de manifesto principal ao executar jar do maven pom.xml
Posted: 28 Mar 2021, 23:15
Um erro muito comum ao se confeccionar um programa JAR com Maven é o infeliz rodar normal no netbeans mas fora dele dar problemas como
"Nenhum atributo de manifesto principal", isso se dá porque o burro do ambiente não sabe onde fica a sua classe principal (aquela que tem void main ) e tão pouco ele pergunta e grava qual que seria. Para resolver isso, em alguns casos você faz esses passos:
1) Clique com o botão direito no item do topo da árvore do projeto > Propriedades > Run > Browse , no campo main class procure a sua classe a deixe ali, não vai adiantar nada na maioria dos casos.
2) Entre na pasta do seu projeto, no caso, vamos fazer de conta que o nome do seu projeto é Bucetildes e a classe principal se chama PiquiRuido, então entre na pasta ~/NetBeansProjects/bucetildes/ e abra o famigerado arquivo pom.xml , dentro dele , depois da tag </modelVersion> :
Mude as tags mainClass , atifactld e version de acordo com o seu projeto.
Salve tudo, compile e TALVEZ dê certo, afinal, quando o assunto é Java , tudo que parece simples, pode dar errado num belo stacktracer
FORÇA BRUTA:
Se nada der certo, entre no zip jar com um programa para navegar em pastas zips, o thunar do Linux faz isso bem, depois dê um duplo clique no jar, ele abrirá o programa file-roller (tipo um winrar do Linux) , entre na pasta META-INF, edite dali mesmo o MANIFEST.MF colocando
nele a seguinte linha :
Mudando main classe para o caminho completo da sua classe no caso. Salve e pronto.
"Nenhum atributo de manifesto principal", isso se dá porque o burro do ambiente não sabe onde fica a sua classe principal (aquela que tem void main ) e tão pouco ele pergunta e grava qual que seria. Para resolver isso, em alguns casos você faz esses passos:
1) Clique com o botão direito no item do topo da árvore do projeto > Propriedades > Run > Browse , no campo main class procure a sua classe a deixe ali, não vai adiantar nada na maioria dos casos.
2) Entre na pasta do seu projeto, no caso, vamos fazer de conta que o nome do seu projeto é Bucetildes e a classe principal se chama PiquiRuido, então entre na pasta ~/NetBeansProjects/bucetildes/ e abra o famigerado arquivo pom.xml , dentro dele , depois da tag </modelVersion> :
Code: Select all
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.javanunes.Bucetildes.PiquiRuido</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Salve tudo, compile e TALVEZ dê certo, afinal, quando o assunto é Java , tudo que parece simples, pode dar errado num belo stacktracer
FORÇA BRUTA:
Se nada der certo, entre no zip jar com um programa para navegar em pastas zips, o thunar do Linux faz isso bem, depois dê um duplo clique no jar, ele abrirá o programa file-roller (tipo um winrar do Linux) , entre na pasta META-INF, edite dali mesmo o MANIFEST.MF colocando
nele a seguinte linha :
Code: Select all
Main-Class: com.javanunes.Bucetildes.PiquiRuido