Article image
Lilian Rodrigues
Lilian Rodrigues02/10/2026 12:41
Compartilhe

Java não começa no código: começa no ambiente

    Quando começamos a estudar Java, é comum imaginar que o primeiro passo é escrever:

    System.out.println("Olá, mundo!");
    

    Mas existe uma pergunta anterior:

    O computador está preparado para entender o que estamos tentando construir?

    Antes do primeiro Hello World, existe todo um ecossistema: JDK, variáveis de ambiente, terminal, gerenciadores de build e IDEs.

    E talvez essa seja uma das primeiras lições importantes para quem está entrando no desenvolvimento:

    Programar não é apenas escrever código. É preparar, executar, testar e controlar o ambiente onde esse código vive.

    1. O ambiente Java: antes do código, a infraestrutura

    O JDK (Java Development Kit) fornece as ferramentas necessárias para desenvolver aplicações Java.

    Entre elas está o compilador:

    javac
    

    e o comando utilizado para executar aplicações:

    java
    

    Por isso, configurar corretamente o ambiente faz diferença.

    Variáveis como PATH permitem que o sistema encontre os executáveis do Java pelo terminal, enquanto JAVA_HOME pode indicar onde o JDK está instalado.

    Uma simples verificação já pode responder muita coisa:

    java -version
    javac -version
    

    Parece básico.

    Mas existe uma lição escondida aqui:

    antes de procurar um erro no código, precisamos verificar se o ambiente consegue executar aquilo que estamos tentando fazer.

    Isso vale muito além do Java.

    2. Build: quando o projeto deixa de ser apenas código

    Conforme o projeto cresce, executar arquivos manualmente deixa de ser suficiente.

    Entram em cena os gerenciadores de build, como:

    • Maven
    • Gradle

    Eles ajudam a automatizar tarefas como:

    código
    ↓
    compilação
    ↓
    testes
    ↓
    dependências
    ↓
    empacotamento
    ↓
    artefato
    

    No Maven, por exemplo:

    mvn clean package
    

    pode executar uma sequência de etapas necessárias para preparar o projeto.

    A diferença importante é que o desenvolvedor deixa de depender de uma sequência manual de comandos.

    O build passa a representar um processo reproduzível.

    E aqui surge uma conexão interessante com engenharia de software:

    Quanto mais previsível é o processo de construção, menor tende a ser a dependência de procedimentos manuais.

    3. Maven ou Gradle?

    Maven e Gradle resolvem problemas semelhantes, mas utilizam abordagens diferentes.

    O Maven utiliza arquivos de configuração baseados em XML e trabalha fortemente com convenções.

    O Gradle utiliza scripts, podendo trabalhar com Groovy ou Kotlin, oferecendo maior flexibilidade para configurar o processo de build.

    Não é simplesmente uma questão de “qual ferramenta é melhor”.

    A pergunta mais interessante é:

    qual ferramenta atende melhor às necessidades daquele projeto e da equipe?

    Essa forma de pensar também faz parte da evolução de quem está aprendendo tecnologia.

    Nem toda escolha técnica precisa ser uma disputa entre ferramentas.

    4. A IDE: cockpit ou caixa-preta?

    Depois de configurar o ambiente, podemos utilizar uma IDE.

    Algumas opções conhecidas no ecossistema Java são:

    • Eclipse
    • IntelliJ IDEA
    • Visual Studio Code

    A IDE facilita tarefas como:

    • escrever código;
    • identificar erros;
    • navegar pelo projeto;
    • executar aplicações;
    • depurar;
    • integrar ferramentas de desenvolvimento.

    Mas existe uma armadilha para quem está começando:

    a IDE pode esconder o que realmente está acontecendo.

    Por isso, executar um programa pelo terminal também é um excelente exercício.

    Podemos compilar:

    javac Main.java
    

    E executar:

    java Main
    

    Enquanto a IDE oferece conveniência, o terminal ajuda a enxergar o processo.

    É como aprender a dirigir conhecendo também o que existe por trás do painel.

    5. O primeiro programa

    Depois de toda essa preparação, finalmente chegamos ao clássico:

    public class Main {
      public static void main(String[] args) {
          System.out.println("Olá, Java!");
      }
    }
    

    Executar esse código pode parecer algo pequeno.

    Mas, tecnicamente, muita coisa aconteceu:

    JDK
     ↓
    javac
     ↓
    compilação
     ↓
    JVM
     ↓
    execução
     ↓
    "Olá, Java!"
    

    O primeiro programa não é apenas uma mensagem na tela.

    Ele é a primeira evidência de que o ambiente foi configurado corretamente e que o fluxo básico de desenvolvimento está funcionando.

    6. E onde entra a Cibersegurança?

    Aqui começa uma conexão que considero especialmente interessante.

    Configuração de ambiente, dependências, automação e execução parecem assuntos puramente relacionados ao desenvolvimento.

    Mas eles também possuem implicações de segurança.

    Um projeto real depende de bibliotecas.

    O build resolve essas dependências.

    A aplicação executa essas bibliotecas.

    Portanto, existe uma cadeia:

    código → dependências → build → artefato → execução

    Se algum componente dessa cadeia possuir uma vulnerabilidade, o problema pode ultrapassar o código que escrevemos diretamente.

    É por isso que conceitos como DevSecOps, gerenciamento de dependências, atualização de componentes, testes e validações automatizadas ganham importância.

    A segurança não precisa aparecer apenas no final do desenvolvimento.

    Ela pode fazer parte do próprio processo de construção.

    7. A primeira execução também é uma validação

    Existe outra reflexão que gosto desse processo.

    Quando executamos:

    java Main
    

    e recebemos:

    Olá, Java!
    

    temos uma evidência.

    O código compilou.

    O ambiente respondeu.

    A aplicação executou.

    Isso parece simples, mas representa uma ideia importante:

    Não basta acreditar que o ambiente está correto. Precisamos testar.

    Esse princípio aparece novamente quando trabalhamos com builds, testes automatizados, APIs, dados e até ferramentas de IA.

    Uma configuração pode parecer correta.

    Um código pode parecer correto.

    Uma resposta pode parecer correta.

    Mas evidência é diferente de percepção.

    Do “Hello World” à engenharia

    Talvez a maior mudança de mentalidade para quem está começando Java seja perceber que o desenvolvimento não começa quando digitamos a primeira linha de código.

    Ele começa quando entendemos o ambiente.

    Depois aprendemos a:

    configurar → executar → compilar → testar → automatizar → validar

    E, conforme os projetos crescem, essa sequência deixa de ser apenas uma rotina de aprendizado e passa a fazer parte da engenharia de software.

    No início, queremos apenas fazer o programa funcionar.

    Depois começamos a perguntar:

    Como tornar isso reproduzível?

    Como testar?

    Como automatizar?

    Como controlar dependências?

    Como identificar problemas?

    Como incorporar segurança ao processo?

    Talvez seja justamente aí que o estudante deixa de apenas aprender uma linguagem e começa a desenvolver uma mentalidade de engenharia.

    E tudo isso pode começar com uma pequena pergunta:

    “Por que meu Hello World não está rodando?”

    #JDK #Gradle #Eclipse #IntelliJIDEA #VSCode #Dev #Cybersecurity #SoftwareDevelopment #Programming #TI

    Compartilhe
    Comentários (0)