Por exemplo, essa é minha task do Gradle pra gerar um jar.
peczenyj
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
E
Eumesm0
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.0Main-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
peczenyj
isso não parece estar certo. parece um valor padrão que vc tem que substituir…
E
Eumesm0
Só exemplifiquei
Na verdade esta assim
Main-Class com.empresateste.Teste (minha main class se chama teste)
eu acho que tem uma quebra de linha onde não deve nesse arquivo
E
Eumesm0
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.
peczenyj
experimenta criar uma classe chamada App ao inves desse nome gigante e ve o que acontece
E
Eumesm0
Tentei. Sem sucesso.
Tentei trocar o jdk (open para oracle, o erro continua). Agora vou tentar gerar o jar por linha de comando
peczenyj
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.
darlan_machado
E por quê você não faz a geração do artefato pelo próprio maven?
E
Solucao aceita
Eumesm0
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.
darlan_machado
Mais simples que um
mvncleanpackage
???
Clonei teu repo e executei o comando acima. Bingo, gerou, mandei um java -jar e executou. E aí?
E
Eumesm0
C acredita que tentei isso e não foi.
peczenyj
cara acontece
to eu aqui tentando debuggar um request q não mostrava nada pq justamente o retorno era 204 No Content
darlan_machado
Leva na encruzilhada, deixa uns charutos, uma cachaça e depois passa na igreja…
E
Eumesm0
Bem isso
Uma pergunta bem simples e iniciante, com o mvn clean package com escolho o diretório que o jar será criado?
darlan_machado
Ele gera dentro do projeto, em target.
Aí é só mover.