Como Compilar Programas Java: Guia para Iniciantes sobre javac, Configuração do PATH e Erros Comuns

Quando você começa a aprender Java, a primeira barreira que encontrará é a “compilação”. Apenas escrever o código‑fonte (.java) não executa nada — é preciso compilá‑lo usando o comando javac para gerar um arquivo .class, e só então o programa pode ser executado. Neste artigo, resumimos o procedimento de compilação Java, o uso básico do javac, a configuração do PATH e soluções para erros comuns de iniciantes — em um fluxo que até um completo novato pode seguir passo a passo. O objetivo é passar de “Por onde eu começo a compilar Java?” para digitar comandos com confiança, sem hesitação.

O Que É Compilação em Java?|Explicação Amigável para Iniciantes sobre “Compilação”

Em Java, “compilação” é o processo de converter o código‑fonte escrito por humanos (.java) em um formato legível pela Java Virtual Machine (JVM).
O resultado é o arquivo .class, chamado bytecode.

Ao contrário de linguagens como C, que compilam diretamente para código nativo, Java tem uma etapa intermediária — o código‑fonte é primeiro convertido em bytecode, que depois é executado na JVM.
Esse mecanismo permite que o mesmo arquivo .class rode em diferentes ambientes de SO — ou seja, você pode executar o exato mesmo programa Java no Windows, macOS ou Linux.

Outro elemento crucial que você deve entender: compilar e executar são ações distintas.

  • “javac” → cuida da compilação
  • “java” → cuida da execução

A maioria dos iniciantes falha porque essa distinção lhes parece vaga. Esclarecer esses “dois papéis diferentes” torna‑se o passo mais eficiente para sua compreensão inicial.

Preparação Necessária Antes de Compilar Java

Para compilar Java, você precisa ter o JDK (Java Development Kit) instalado.
O JRE sozinho não pode compilar código, pois a ferramenta de compilação javac está incluída apenas no JDK.

Comece verificando isso:

javac -version

Se esse comando retornar um número de versão, você está pronto para prosseguir.
Se aparecer “command not found” ou erros semelhantes, é muito provável que uma das seguintes situações ocorra:

  • O JDK não está instalado
  • O JDK está instalado, mas o PATH não está configurado
  • Você tem apenas o JRE instalado (sem kit de desenvolvimento)

A configuração do PATH é especialmente onde usuários japoneses ficam presos.
Se o sistema operacional não reconhecer o caminho até javac.exe (ou o diretório /bin), a compilação não funcionará.

Conclusão:
“Prepare o JDK” e “Verifique o PATH” — somente com esses dois itens você pode estar realmente na linha de partida da compilação Java.

Vamos Compilar um Arquivo Java de Verdade

Aqui, criaremos um código de exemplo e confirmaremos o procedimento de compilação com javac.
Primeiro, salve o conteúdo a seguir em um editor de texto.

Sample.java

public class Sample {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}

O nome do arquivo deve ser Sample.java, e o nome da classe pública deve coincidir com o nome do arquivo.
Se essa regra for violada, a compilação falhará — esse é um dos erros mais comuns entre iniciantes.

Em seguida, execute o seguinte no terminal / prompt de comando:

javac Sample.java

Se tudo for executado normalmente, Sample.class será gerado na mesma pasta.
Isso indica “compilação concluída”.

Portanto, neste momento você tem:

  • Sample.java (fonte)
  • Sample.class (bytecode)

Esse par está pronto.
Nesta fase, você está preparado para “executar um programa Java”.

Como Executá‑Lo Após a Compilação

Depois que a compilação termina, o próximo passo é executar o arquivo .class.
O comando usado aqui é java — não javac.

java Sample

Ponto chave: não escreva a extensão .class.
Escrever java Sample.class causará um erro.
O Java foi projetado para executar com base no nome da classe (sem extensão).

Resumo organizado:

RoleCommandTarget
Compilejavac Sample.java.java file
Runjava SampleClass name (without extension)

Se você compreende a troca de papéis entre javac e java, superou a fase de iniciante.

Se “Hello Java!” aparecer com sucesso, o processo funcionou.
Neste ponto, você já compreendeu o “fluxo” mínimo do Java.

Erros Frequentes e Como Corrigi‑los

Na compilação Java, encontrar erros no início é absolutamente normal.
Aqui focamos apenas nos equívocos que iniciantes japoneses costumam cometer.

1) javac: command not found / 'javac' is not recognized…

Em quase 100 % dos casos, a causa está em uma das seguintes situações:

  • O JDK não está instalado
  • O PATH não está configurado

Correção:
Execute javac -version para verificar
→ Se nada aparecer, reinstale o JDK e revise a configuração do PATH.

2) A compilação tem sucesso, mas nenhum arquivo .class é gerado

O problema mais comum entre iniciantes japoneses é este:

O nome do arquivo e o nome da classe pública não coincidem

Exemplo — Se Sample.java contém:

public class Test {
}

→ Isso resultará em um erro de compilação.

3) Avisos relacionados à codificação de caracteres

warning: [options] bootstrap class path not set in conjunction with -source 1.7

Avisos como esses não são fatais na maioria dos casos.
Entretanto, podem indicar configurações de versão antiga ou codificação incompatível.
Salvar os arquivos em UTF‑8 é a escolha mais segura.

Compilando Usando uma IDE

No desenvolvimento Java do mundo real, você raramente digita javac manualmente no terminal a cada vez.
Isso ocorre porque a IDE (Ambiente de Desenvolvimento Integrado) lida automaticamente com a compilação em segundo plano.

As três IDEs a seguir são extremamente populares no Japão e também são práticas para quem está aprendendo:

IDECharacteristics
IntelliJ IDEAThe de-facto standard for modern Java development. Suitable for professional use.
EclipseLong history, widely used in enterprise projects.
VSCodeLightweight. Java Extension Pack enables a proper Java environment.

Nas IDEs, a compilação acontece automaticamente toda vez que você salva um arquivo — e a localização dos erros é visualizada instantaneamente.
Isso significa que você pode contornar os obstáculos de iniciante, como “digitar javac errado” ou “configuração de PATH incorreta”.

No entanto, ainda é verdade que há grande valor em experimentar manualmente o javac pelo menos uma vez para entender como o Java funciona.
Quando você compreende o fluxo “compilar → executar” manualmente, sua velocidade de compreensão aumenta drasticamente ao migrar para o desenvolvimento baseado em IDE.

Noções Básicas das Opções do javac

javac não é apenas um “conversor de .java → .class”. Você pode anexar diversas opções para controlar o comportamento da compilação.
Mas, no estágio iniciante, não é necessário memorizar tudo — conhecer apenas as opções mais usadas já basta.

Aqui estão três opções representativas:

OptionMeaningExample
-dSpecify output directory for .class filesjavac -d out Sample.java
-classpathSpecify classpath for external libraries / other directoriesjavac -classpath lib/* Sample.java
--enable-previewEnable preview language featuresjavac --enable-preview Sample.java

Especial -d é quase obrigatória ao usar pacotes.
Por exemplo, se você escrever package com.example;, deve usar javac -d para gerar corretamente a estrutura de diretórios dentro do diretório de saída.

À medida que você avança para o trabalho real, a especificação do classpath e o uso de -d aumentam drasticamente.
Só de estar ciente desses nomes nesta fase, o aprendizado posterior se torna mais fluido.

Resumo

Para executar programas Java, você deve entender a sequência de 3 etapas: escrever o código fonte → compilar → executar.
Especialmente se você separar mentalmente os papéis do javac (compilação) e do java (execução), a razão “por que a compilação é necessária” passa a fazer total sentido.

Além disso, iniciantes geralmente se prendem a esses dois pontos:

  • JDK não está instalado / PATH não está configurado
  • Nome do arquivo e nome da classe pública não são iguais

Se você resolver apenas esses dois, evitará grandes desvios na fase de aprendizado.
Depois de se acostumar com o básico, migrar para o desenvolvimento em IDE é totalmente aceitável.
Entretanto, compreender “o mecanismo interno” é o que mais tarde cria a diferença na velocidade de entendimento.

Use este artigo como ponto de partida e, primeiro, conclua com sucesso a conversão .java → .class uma vez.
Esse é o primeiro marco de conquista ao aprender Java.

FAQ: Perguntas Frequentes Sobre a Compilação Java

Q1: Qual a diferença entre javac e java?
A: javac é o comando de compilação — ele converte .java em .class.
 Por outro lado, java é o comando de execução — ele roda o .class na JVM.

Q2: Sample.class não é gerado. Qual é a causa?
A: A causa mais comum é que o nome do arquivo e o nome da public class não correspondem.
 Se a classe for public class Sample, o arquivo deve ser Sample.java.

Q3: Se eu estiver usando um IDE, ainda preciso aprender javac?
A: Os IDEs compilam automaticamente em segundo plano, mas se você não entender o mecanismo, fica mais difícil compreender o que realmente está acontecendo.
 Experimentar o fluxo básico uma vez ajuda a entender o comportamento do IDE mais rapidamente.

Q4: Qual JDK devo instalar?
A: Para iniciantes, as builds LTS do Temurin (Eclipse Adoptium) são fáceis de usar.
 Se você não tiver um motivo específico, escolha Java 17 ou 21.

Q5: Eu recebo javac: command not found
A: Ou o JDK não está instalado ou o PATH não está configurado.
 Primeiro, execute javac -version para verificar se está reconhecido.