Boa tarde!
Caso tivéssemos um manifest(indicando a classe com o método main) no zip programa.jar deveria ser executado da seguinte forma: java -jar programa.jar? e se executássemos da seguinte forma: java -cp programa.jar b.A daria erro?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde!
Caso tivéssemos um manifest(indicando a classe com o método main) no zip programa.jar deveria ser executado da seguinte forma: java -jar programa.jar? e se executássemos da seguinte forma: java -cp programa.jar b.A daria erro?
Oi Carlesson, tudo joia?
Você está no caminho certo ao pensar sobre o manifesto e a execução de arquivos JAR. Vamos esclarecer alguns pontos:
Manifesto no JAR: Quando um arquivo JAR contém um manifesto que especifica a classe principal (aquela com o método main), você pode executá-lo usando o comando:
java -jar programa.jar
Isso funciona porque o manifesto informa ao Java qual classe deve ser executada.
Sem Manifesto: No caso de não haver um manifesto no arquivo JAR, você precisa especificar a classe principal manualmente. A opção correta para executar a classe A que está no pacote b seria:
java -cp programa.jar b.A
Aqui, -cp (ou -classpath) diz ao Java onde procurar as classes, e b.A especifica a classe que contém o método main.
Portanto, a resposta correta para o exercício é realmente a opção E) java -cp programa.jar b.A.
Espero ter ajudado e bons estudos!