11‐Run Spring Boot apps from the Command Line - JulianeMaran32/Java-with-Spring-Boot GitHub Wiki

23. Executando aplicações Spring Boot pela Linha de Comando - Visão Geral

Executando pela Linha de Comando

Durante o desenvolvimento, usamos muito a IDE (como IntelliJ, Eclipse ou NetBeans). Mas, às vezes, queremos rodar nossa aplicação Spring Boot fora da IDE, direto no terminal. Isso pode ser útil para testes, produção ou integração contínua.

Vantagens:

  • Não é preciso abrir a IDE.
  • Como usamos Spring Boot, o servidor já está embutido no arquivo .jar.
  • A aplicação é auto-contida (self-contained), ou seja:
    • O .jar inclui o seu código e o servidor (como Tomcat).
    • Não precisa instalar nada a mais.

Existem duas formas de executar a aplicação:

  • Opção 1: Usar o comando java -jar
  • Opção 2: Usar o plugin Maven do Spring Boot com o comando mvnw spring-boot:run

Opção 1: Usar java -jar

java -jar minha-aplicacao.jar

Explicação:

  • java: inicia a JVM.
  • -jar: executa um arquivo .jar (junto com o servidor embutido).
  • minha-aplicacao.jar: nome do arquivo .jar da sua aplicação.

Sua aplicação já está pronta para rodar com esse comando, sem necessidade de servidor externo ou IDE.

Opção 2: Usar o Plugin Maven do Spring Boot

Se o projeto tiver o Maven Wrapper, você pode usar:

./mvnw spring-boot:run   # Linux/Mac
mvnw.cmd spring-boot:run # Windows

O que é o Maven Wrapper?

  • Arquivos mvnw (Linux/Mac) e mvnw.cmd (Windows) são fornecidos no projeto.
  • Com eles, você não precisa ter o Maven instalado.
  • Se o Maven não estiver disponível, o wrapper baixa automaticamente a versão correta.
  • Se você já tem o Maven instalado, pode usar o comando normalmente:
mvn clean compile test

Plugin Spring Boot Maven no pom.xml

Esse plugin já vem configurado no pom.xml quando criamos o projeto pelo Spring Initializr:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Esse plugin permite:

  • Gerar um arquivo .jar executável com mvnw package
  • Executar a aplicação com mvnw spring-boot:run

Processo de Desenvolvimento (passo a passo)

  1. Feche sua IDE (IntelliJ, Eclipse etc.).
  2. Gere o .jar com o comando:
    ./mvnw package
  3. Execute com:
    java -jar target/minha-aplicacao.jar
  4. Ou, execute direto com:
    ./mvnw spring-boot:run

Se tiver dúvidas sobre qual opção escolher, use a que for mais prática para você no momento. Ambas são úteis, e conhecer as duas é importante para desenvolvimento, testes e implantação em produção.

24. Preparando a Aplicação para Executar na Linha de Comando

Antes de iniciar, siga os passos abaixo:

  1. Se sua aplicação estiver rodando na IDE, pare a execução.
  2. Abra o arquivo pom.xml e remova dependências desnecessárias, como o Actuator e a Segurança, para simplificar o processo.
  3. Salve as alterações.
  4. Feche a IDE.

Agora sua aplicação está pronta para ser executada diretamente da linha de comando! Dependendo do seu sistema operacional, os comandos podem variar. Em breve, haverá tutoriais específicos para Windows, Mac e Linux.

25. Executar aplicativos Spring Boot pela linha de comando - Microsoft Windows

Neste passo, você vai aprender como rodar um aplicativo Spring Boot usando o prompt de comando do Windows, sem precisar de uma IDE (como o IntelliJ ou Eclipse).

Passo a passo:

  1. Atenção: Evite colocar seus projetos em pastas com espaços no nome. Isso pode causar erros na execução.
    Exemplo ruim: C:\Meus Projetos\Spring Boot
    Exemplo bom: C:\Projetos\spring-boot

  2. Abrir o Prompt de Comando:
    Pressione Win + S, digite cmd e pressione Enter.

  3. Verificar se o Java está instalado corretamente:
    No prompt de comando, digite:

    echo %JAVA_HOME%
    java --version
    
    • Se os dois comandos mostrarem um resultado, o Java está instalado corretamente.
    • Se um deles não funcionar, o Java está mal instalado.
      Veja este vídeo para instalar corretamente: Link do vídeo
  4. Ir até o diretório do projeto:
    Copie o caminho da pasta onde está seu projeto.
    Exemplo:

    cd C:\Users\julia\Desktop\cursos\Java-with-Spring-Boot\01-spring-boot-overview\overview
    
  5. Empacotar o projeto:
    Isso criará um arquivo .jar do seu app.

    mvnw package
    
  6. Rodar o aplicativo:
    Após empacotar, será criado um arquivo .jar dentro da pasta target.
    Para rodar o app:

    java -jar target\overview-0.0.1-SNAPSHOT.jar
    

    O app iniciará e poderá ser acessado no navegador pelo endereço: http://localhost:8080

  7. Parar o aplicativo:
    No prompt de comando, pressione Ctrl + C.

  8. Outra forma de rodar (sem usar o .jar):
    Você pode usar o plugin do Spring Boot do Maven:

    mvnw spring-boot:run
    

✅ Pronto! Você conseguiu rodar o app diretamente pela linha de comando no Windows.

26. Executar aplicativos Spring Boot pela linha de comando - macOS / Linux

Agora vamos ver como rodar o mesmo projeto, mas usando o terminal do macOS ou do Linux.

Passo a passo:

  1. Abra o Terminal.

  2. Acesse o diretório do projeto:

    cd caminho/para/seu/projeto
    

    Exemplo:

    cd ~/dev/dev-spring-boot/05-command-line-demo
    
  3. Empacotar o projeto:

    ./mvnw package
    
    • Isso vai criar um arquivo .jar na pasta target/.
    • Se você já tiver o Maven instalado, pode usar mvn package.
  4. Executar o aplicativo: Vá até a pasta target:

    cd target
    ls
    

    Localize o arquivo .jar gerado e rode o app:

    java -jar mycoolapp-0.0.1-SNAPSHOT.jar
    
  5. Acessar o app no navegador:
    Vá para http://localhost:8080

    Exemplos de endpoints:

    • / → mostra "Hello, World!"
    • /workout → exibe uma mensagem de treino
    • /fortune → mostra uma frase de sorte
  6. Parar o aplicativo: Pressione Ctrl + C no terminal.

  7. Executar o app com o plugin do Maven (alternativa):
    Suba um nível na pasta:

    cd ..
    

    Depois rode:

    ./mvnw spring-boot:run
    

✅ Pronto! Agora você sabe como executar seu app Spring Boot no macOS ou Linux sem usar nenhuma IDE.

⚠️ **GitHub.com Fallback** ⚠️