Nenhum atributo de manifesto principal ao executar jar do maven

Você está cansado daqueles exemplos pra lá de complexos , abstratos e escrotos que só os nerds da programação entendem ? Parece mais que a pessoa dá exemplos complexos só para você dizer: -- Nossa como você é foda! E o pior, você vai compilar e sempre dá um erro!
Cansado daqueles exemplos hediondos da https://developer.android.com para quem é inteligentão? Cansado aqueles exemplos grandiosos e massantes do https://docs.microsoft.com que só é facil pra eles? Venha pra cá e poste códigos que até crianças entendem aqui! Mostre de forma ridícula como métodos, classes e outras coisas são chamadas. Vamos dar exemplos bem amadores de C++ , Java , Python e outras desgraças!
Forum rules
Não poste coisas complicadas só para mostrar que é 'BONZÃO' ! Queremos coisas pequenas e simples e sem notação húngara
Post Reply
User avatar
javanunes
Site Admin
Posts: 128
Joined: 05 Nov 2017, 19:33
Contact:

Nenhum atributo de manifesto principal ao executar jar do maven

Post by javanunes »

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> :

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>
    

  
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 :

Code: Select all

Main-Class: com.javanunes.Bucetildes.PiquiRuido
Mudando main classe para o caminho completo da sua classe no caso. Salve e pronto.
Post Reply