Compilação Java Explicada: Como o javac Funciona, Etapas de Compilação e Erros Comuns

Quando você começa a aprender Java, o primeiro grande obstáculo que costuma encontrar é a “compilação”. Apenas escrever o código‑fonte (.java) não é suficiente para executar um programa. É necessário compilá‑lo usando o comando javac para gerar um arquivo .class antes que ele possa ser executado. Neste artigo, explicamos o processo de compilação Java, o uso básico do javac, a configuração do PATH e como lidar com erros comuns, tudo de forma passo a passo para que iniciantes possam seguir. O objetivo é ajudá‑lo a passar de “Por onde começar a compilar Java?” para realmente compilar e executar programas Java sem confusão.

O Que é Compilação Java? | Entendendo “Compilação” para Iniciantes

Em Java, “compilação” refere‑se ao processo de converter o código‑fonte escrito por humanos (.java) em um formato que a Java Virtual Machine (JVM) possa ler.
A saída desse processo é um arquivo .class, que é chamado de bytecode.

Ao contrário de linguagens como C, que são compiladas diretamente para código de máquina nativo, Java primeiro converte o código‑fonte em bytecode e depois o executa na JVM.
Graças a esse mecanismo, o mesmo arquivo .class pode ser executado em diferentes sistemas operacionais, permitindo que o mesmo programa Java rode no Windows, macOS e Linux.

Outro ponto importante a entender é que compilação e execução são operações separadas.

  • “javac” → responsável pela compilação
  • “java” → responsável pela execução

Cerca de 90 % dos iniciantes têm dificuldade porque essa distinção não está clara.
Compreender firmemente que esses dois comandos têm papéis diferentes é o primeiro passo mais eficiente.

Requisitos para Compilação Java

Para compilar código Java, você deve ter o JDK (Java Development Kit) instalado.
O JRE sozinho não é suficiente, pois o compilador javac é uma ferramenta de desenvolvimento incluída apenas no JDK.

Comece verificando o seguinte:

javac -version

Se esse comando retornar um número de versão, está tudo certo.
Se aparecer uma mensagem como “command not found”, provavelmente ocorre um dos seguintes casos:

  • O JDK não está instalado
  • O JDK está instalado, mas o PATH não está configurado
  • Apenas o JRE está instalado (sem ferramentas de desenvolvimento)

Em particular, a configuração do PATH é um obstáculo comum para iniciantes.
Se o sistema não conseguir encontrar o diretório que contém javac (ou o diretório bin), a compilação não funcionará.

Conclusão:
Você só pode começar a compilar Java depois que “instalação do JDK” e “verificação do PATH” estiverem devidamente concluídas.

Compilando um Arquivo Java na Prática

Aqui, criaremos um programa de exemplo simples e o compilaremos usando 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 é crucial que o nome da classe pública corresponda ao nome do arquivo.
Java não compilará se essa regra for violada, e esse é um erro clássico de iniciantes.

Em seguida, execute o comando a seguir no seu terminal ou prompt de comando:

javac Sample.java

Se a compilação for bem‑sucedida, um arquivo Sample.class aparecerá no mesmo diretório.
Isso indica que a compilação foi concluída com sucesso.

Neste ponto, você tem agora:

  • Sample.java (código‑fonte)
  • Sample.class (bytecode)

Com esse par em mãos, você está pronto para executar um programa Java.

Executando um Programa Após a Compilação

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

java Sample

O ponto chave é não incluir a extensão .class.
Se você escrever java Sample.class, ocorrerá um erro.
Java foi projetado para executar programas especificando apenas o nome da classe.

Em resumo:

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

Uma vez que você compreenda claramente os papéis diferentes de javac e java, você terá efetivamente superado a fase de iniciante.

Se “Hello Java!” aparecer na tela, seu programa foi executado com sucesso.
Neste ponto, você compreendeu o fluxo de trabalho mínimo necessário em Java.

Erros Comuns e Como Corrigi‑los

Encontrar erros durante a compilação Java é completamente normal para iniciantes.
Aqui, focamos nos problemas mais comuns enfrentados por muitos usuários.

1) javac: command not found

Em quase 100% dos casos, a causa é uma das seguintes:

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

Solução:
Execute javac -version
→ Se não funcionar, reinstale o JDK e revise as configurações do seu PATH.

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

O erro mais comum é:

O nome do arquivo não corresponde ao nome da classe pública

Exemplo:

public class Test {
}

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

3) Avisos relacionados à codificação

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

Avisos como este geralmente não são erros fatais.
No entanto, podem indicar opções de origem desatualizadas ou incompatibilidades de codificação.
Para evitar problemas, sempre salve seus arquivos em UTF-8.

Compilando com uma IDE

No desenvolvimento Java real, os desenvolvedores raramente executam javac manualmente na linha de comando.
Isso ocorre porque as IDEs (Ambientes de Desenvolvimento Integrado) lidam com a compilação automaticamente.

As IDEs abaixo são especialmente populares e práticas:

IDEFeatures
IntelliJ IDEAThe de facto standard for modern Java development, suitable for professional use.
EclipseA long-established IDE widely used in enterprise projects.
VS CodeLightweight; Java Extension Pack provides a complete environment.

As IDEs compilam automaticamente seu código sempre que você salva um arquivo e destacam erros imediatamente.
Isso elimina muitas armadilhas para iniciantes, como erros de digitação de comandos e configuração incorreta do PATH.

Dito isso, compilar manualmente com javac pelo menos uma vez é valioso para entender como o Java funciona internamente.
Depois de compreender o fluxo “compilar → executar”, sua velocidade de aprendizado com uma IDE aumentará significativamente.

Opções Básicas do javac

O comando javac suporta muitas opções que controlam como a compilação é realizada.
No nível iniciante, você só precisa entender algumas das mais usadas.

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

OptionDescriptionExample
-dSpecifies the output directory for class filesjavac -d out Sample.java
-classpathSpecifies external libraries or additional class pathsjavac -classpath lib/* Sample.java
--enable-previewEnables preview language featuresjavac --enable-preview Sample.java

A opção -d é especialmente importante ao usar pacotes.
Por exemplo, se você usar package com.example;, omitir javac -d resultará em uma estrutura de diretórios incorreta.

À medida que você avança para o desenvolvimento real, as opções classpath e -d se tornam cada vez mais importantes.
Mesmo reconhecer seus nomes cedo tornará o aprendizado futuro mais fluido.

Resumo

Para executar um programa Java, você deve entender o processo de três etapas: escrever código fonte → compilar → executar.
Quando os papéis do javac (compilação) e do java (execução) ficam claros, o objetivo da compilação se torna óbvio.

As duas armadilhas mais comuns para iniciantes são:

  • O JDK não está instalado ou o PATH não está configurado
  • O nome do arquivo não corresponde ao nome da classe pública

Ao resolver esses problemas cedo, você pode evitar desvios desnecessários no seu processo de aprendizado.
Você pode passar para o desenvolvimento baseado em IDEs assim que se sentir confortável, mas entender o mecanismo subjacente melhorará significativamente sua velocidade de aprendizado.

Use este artigo como ponto de partida e concentre‑se primeiro em converter com sucesso um único arquivo .java em um arquivo .class.
Esse momento marca seu primeiro marco real ao aprender Java.

FAQ: Perguntas Frequentes Sobre Compilação Java

Q1: Qual é a diferença entre javac e java?
R: javac é o comando de compilação que converte arquivos .java em arquivos .class.
java é o comando de execução que roda arquivos .class na JVM.

Q2: Por que Sample.class não é gerado?
R: A razão mais comum é uma incompatibilidade entre o nome do arquivo e o nome da public class.
Se a classe for public class Sample, o arquivo deve ser nomeado Sample.java.

Q3: Ainda preciso aprender javac se usar um IDE?
A: Os IDEs compilam o código automaticamente, mas sem entender o processo, pode ser difícil saber o que está acontecendo nos bastidores. Experimentar o fluxo básico uma vez torna o uso do IDE muito mais fácil.

Q4: Qual JDK devo instalar?
A: Para iniciantes, as versões LTS do Eclipse Adoptium (Temurin) são fáceis de usar.
Se você não tiver requisitos específicos, Java 17 ou 21 são escolhas seguras.

Q5: Eu recebo javac: command not found
A: Isso significa que o JDK não está instalado ou o PATH não está configurado.
Primeiro, verifique com javac -version.