Este é o guia definitivo para preparar seu computador rodando Windows 10 (64-bit) com o ecossistema completo para desenvolvimento com Java 21 (LTS), Spring Boot 4.1+ / 3.4.2, Apache Maven e IntelliJ IDEA / VS Code, evitando os erros mais comuns de PATH, encoding UTF-8, JVM mismatch e Lombok.
| Componente | Versão Homologada | Descrição / Finalidade Didática |
|---|---|---|
| Sistema Operacional | Windows 10 (64-bit) | Requisito base dos computadores de laboratório e alunos. |
| JDK (Java Runtime) | Oracle JDK 21 / Eclipse Temurin 21 | Kit de desenvolvimento Java 21 LTS (Oracle JDK 21 ou OpenJDK Temurin 21). |
| Framework Backend | Spring Boot 4.1+ (Parent 3.4.2) | Framework para APIs RESTful, Spring Data JPA, Spring Security. |
| Build System | Apache Maven 3.9+ / Maven Wrapper (mvnw) |
Automação de compilação, download e gestão de dependências. |
| IDE Principal | IntelliJ IDEA Community 2023+ | IDE especializada com autocompletar e refatoração inteligente. |
| IDE Secundária | VS Code + Java Extension Pack | Editor leve com suporte oficial da Microsoft para Java. |
| Banco de Dados Local | H2 Database (em memória) | Persistência rápida sem necessidade de instalar servidores locais. |
| Banco em Nuvem | PostgreSQL (Neon Serverless) | Banco relacional para deploy e produção. |
Você pode utilizar tanto o Oracle JDK 21 quanto o Eclipse Temurin 21 (Adoptium). Ambas as distribuições são 100% homologadas para os projetos do curso.
x64 Installer (jdk-21_windows-x64_bin.exe ou .msi)..exe / .msi avançando no assistente de instalação padrão.C:\Program Files\Java\jdk-21..msi.Add to PATH e Set JAVA_HOME variable (Will be installed on local hard drive).C:\Program Files\Eclipse Adoptium\jdk-21.0.x-hotspot.Seja utilizando Oracle JDK 21 ou Eclipse Temurin 21, siga os passos abaixo para garantir que o Windows 10 reconheça o comando java em qualquer terminal:
Windows + R no teclado, digite sysdm.cpl e pressione Enter.JAVA_HOMEC:\Program Files\Java\jdk-21C:\Program Files\Eclipse Adoptium\jdk-21.0.2-hotspot (ou a pasta equivalente criada no seu computador)Path:
%JAVA_HOME%\bin.Abra um novo Prompt de Comando (CMD) ou PowerShell:
# 1. Verifica a versão da JVM (Oracle JDK 21 ou OpenJDK Temurin 21)
java -version
# Saída esperada para Oracle JDK 21:
# java version "21.0.2" 2024-01-16 LTS
# Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-33)
# Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-33, mixed mode, sharing)
# 2. Verifica a versão do compilador Java
javac -version
# Saída esperada: javac 21.0.2
# 3. Verifica se a variável JAVA_HOME está apontando para o Oracle JDK 21 ou Temurin
$env:JAVA_HOME
# Saída esperada: C:\Program Files\Java\jdk-21
Embora os projetos utilizem o Maven Wrapper (mvnw.cmd) embutido nas pastas, ter o Maven global instalado no Windows 10 é recomendado para criar novos projetos rapidamente.
apache-maven-3.9.x-bin.zip).C:\Program Files\Apache\apache-maven-3.9.6 (ou C:\maven).MAVEN_HOME com o valor C:\Program Files\Apache\apache-maven-3.9.6.Path e adicione a linha: %MAVEN_HOME%\bin.mvn -version
Saída esperada: Apache Maven 3.9.x rodando sobre Java version: 21.0.x.
File ➔ Open).File ➔ Project Structure... (ou pressione Ctrl + Alt + Shift + S).Add SDK ➔ JDK... e selecione a pasta C:\Program Files\Eclipse Adoptium\jdk-21.x.x-hotspot.21 - Plain SDK default. ┌────────────────────────────────────────────────────────────────────────┐
│ Project Structure ➔ Project │
│ SDK: [ 21 Eclipse Temurin 21.0.2 ▼ ] │
│ Language Level: [ 21 - Plain SDK default ▼ ] │
└────────────────────────────────────────────────────────────────────────┘
File ➔ Settings (ou Ctrl + Alt + S).Build, Execution, Deployment ➔ Compiler ➔ Annotation Processors.Enable annotation processing.Ctrl + Shift + X).Ctrl + Shift + P, digite Java: Configure Java Runtime e confirme se o VS Code detectou o JDK 21 instalado em JAVA_HOME.pom.xml Homologado (Spring Boot 4.1+ / 3.4.2 + Java 21)Garantia de que seu projeto não exibirá marcações vermelhas ou erros de resolução de dependências no Maven Central:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Parent POM Oficial Estável no Maven Central -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>br.com.curso</groupId>
<artifactId>meu-projeto-java</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>meu-projeto-java</name>
<description>Projeto Java 21 com Spring Boot 4.1+ / 3.4.2</description>
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- Spring Boot Starters -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- Banco de Dados em Memoria (Desenvolvimento) -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Driver PostgreSQL (Producao/Neon) -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Lombok (Utilitario de Codigo) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- Testes Unitarios -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
pom.xml está marcado em vermelho na IDEspring-boot-starter-parent no pom.xml foi definida com uma versão não lançada no Maven Central (como 3.5.5 ou 3.5.6).<version> do parent no seu pom.xml para 3.4.2 (ou 3.3.8 / 3.2.5), abra a aba do Maven na IDE e clique no ícone Reload All Maven Projects 🔄 (Ctrl + Shift + O).'java' não é reconhecido como um comando interno ou externo%JAVA_HOME%\bin não foi incluído na variável de ambiente Path do Windows 10.%JAVA_HOME%\bin ao Path e feche e abra novamente a janela do terminal.java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime (class file version 65.0)class file version 65.0), mas a IDE ou o terminal está rodando com um Java antigo (Java 17, 11 ou 8).Project Structure ➔ Project ➔ SDK se está selecionado o Java 21. No terminal, confirme com java -version.MalformedInputException) no Windows 10CP1252 em vez de UTF-8.<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> esteja presente no seu pom.xml.Rode no terminal dentro da pasta do projeto (PowerShell ou CMD):
# 1. Testa a compilação do projeto com o Maven Wrapper
.\mvnw.cmd clean compile
# 2. Executa a aplicação Spring Boot localmente
.\mvnw.cmd spring-boot:run
Ao aparecer a mensagem no log:
Started Application in X.XXX seconds (process running for X.XXX)
E o servidor respondendo em http://localhost:8080, seu ambiente no Windows 10 está 100% configurado e pronto! 🚀