Problema com arquivo .jar

Gerei um arquivo .jar usando o intellij e quando vou acessar (java -jar “arquivo.jar”) sempre retorna o erro:

não foi possível localizar nem carregar a classe principal.

Já pesquisei diversas fontes mas nenhuma resolveu meu problema. O que pode estar acontecendo?

Você usou o Gradle/Maven?
No meu caso, eu uso o Gradle. Na task de GERAR O JAR, é preciso declarar qual sua main class no build.gradle

task buildJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': project.name,
                'Implementation-Version': version,
                'Main-Class': 'aqui_vai_seu_main'
    }

    baseName = project.name
    doFirst {
        from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
    with jar
}

Por exemplo, essa é minha task do Gradle pra gerar um jar.

quando vc gera o jar vc apenas pega todos os .class e gera um arquivo zip + um arquivo com algumas definições

se vc quer gerar um jar executavel, vc tem q colocar esse arquivo de definições qual é a “main class”.

provavelmente vc tem outra opção (talvez escondida) pra isso

outra forma é vc informar ao java qual classe vc quer executar tipo

java -jar arquivo.jar a.b.c.d.Classe

onde a.b.c.d é um exemplo do nome do pacote completo da classe

eu fiz assim: eu criei um artefato no intellij. Depois de configurar o artefato eu vou em build, artefato, ai cria uma pasta uma META-INF com o arquivo MANIFEST.MF com os linhas

Manifest-Version: 1.0
Main-Class: classpath.class

seu eu acessar o jar criado eu vejo a main classe lá. Mas quando executo o comando ele continua dando o erro.

Meu programa usa maven

isso não parece estar certo. parece um valor padrão que vc tem que substituir…

Só exemplifiquei
Na verdade esta assim
Main-Class com.empresateste.Teste (minha main class se chama teste)

tá faltando os “:” na frente do Main-Class

Main-Class: com.empresateste.Teste

Segue o projeto no git, ele é bem pequeno. Se alguém puder testar e dar o feedback serei muito grato.
https://github.com/rodrigodevelms/gaia_servidor_de_configuracao

eu acho que tem uma quebra de linha onde não deve nesse arquivo

Havia visto isso também. Corrigi a quebra de linha e o erro persiste.
Tentei criar um projeto do zero, sem absolutamente nada. deu o mesmo erro.
Será que pode ser a IDE que está com algum bug para gerar? Ainda não tentei por linha de comando.

experimenta criar uma classe chamada App ao inves desse nome gigante e ve o que acontece

Tentei. Sem sucesso.
Tentei trocar o jdk (open para oracle, o erro continua). Agora vou tentar gerar o jar por linha de comando

cara tem algo muito errado ai.

sera que vc não gerou esse arquivo uma vez e agora ele continua existindo pois é brasileiro e não desiste nunca?

apaga esse arquivo e tenta gerar de novo.

E por quê você não faz a geração do artefato pelo próprio maven?

Pela bendito mal que me persegue, caro amigo: PRATICIDADE!;

Deu certo. O que fiz:
1 - Dei um pull no imagem do alpine (uma imagem linux extremamente leve)
2 - criei um conteiner, instalei o openjdk8 e o maven
3 - mapiei um volume logico com o meu projeto
4 - rodei mvn package -Dmaven.test.skip=true (pular os teste)
5 - naveguei até o diretorio onde o maven criou o jar e fiz java -jar nome_do_jar_criado.jar
6 - funcionou.

Esse filho nasceu e foi sem anestesia.
Obrigado a todos que tentaram ajudar. Um grande abraço

Caro peczenyj realmente tem algo muito errado. Mas só depois do almoço vejo esse BO.

Mais simples que um

mvn clean package

???
Clonei teu repo e executei o comando acima. Bingo, gerou, mandei um java -jar e executou. E aí?

C acredita que tentei isso e não foi.

cara acontece

to eu aqui tentando debuggar um request q não mostrava nada pq justamente o retorno era 204 No Content

Leva na encruzilhada, deixa uns charutos, uma cachaça e depois passa na igreja…

Bem isso :smiley:
Uma pergunta bem simples e iniciante, com o mvn clean package com escolho o diretório que o jar será criado?