Java Editores e IDEs
Um programa Java é um arquivo de texto. Você pode escrevê-lo em qualquer editor, do Bloco de Notas a uma IDE, um programa que escreve, compila, roda e depura tudo na mesma janela. Nesta aula você conhece as opções, entende o que a IDE faz por baixo dos panos e vê por que este guia começa pelo terminal.
- A diferença entre editor de texto, editor de código e IDE.
- As quatro ferramentas mais usadas para Java: VS Code, IntelliJ IDEA, Eclipse e NetBeans.
- O que a IDE faz por você e qual comando do terminal está por trás de cada botão.
- Por que começar com o terminal, e quando passar para a IDE.
- Dois erros de editor: o arquivo
Main.java.txte a acentuação estragada.
A ideia: do caderno à oficina
Pense em consertar uma bicicleta. Dá para fazer com uma chave de boca e paciência. Numa oficina, você tem um suporte que segura a bicicleta, ferramentas penduradas na ordem e uma lista do que verificar. As duas consertam a mesma bicicleta; a oficina só deixa o trabalho mais rápido e com menos erros.
| Tipo | Exemplos | O que oferece |
|---|---|---|
| Editor de texto | Bloco de Notas (Windows), Editor de Texto (Linux), TextEdit (Mac), nano (terminal) | Só escrever e salvar. Nenhuma ajuda com o Java. |
| Editor de código | VS Code, Notepad++, Sublime Text, Kate | Cores no código, numeração de linhas, recuo automático. Com extensões, chega perto de uma IDE. |
| IDE | IntelliJ IDEA, Eclipse, NetBeans | Tudo junto: editor, compilador, execução, depurador, sugestões enquanto você digita, ferramentas de projeto. |
IDE é a sigla de Integrated Development Environment, "ambiente de desenvolvimento integrado": integrado porque junta numa janela o que no terminal são vários programas separados.
Primeiro: o terminal e um editor simples
Este guia mostra tudo com o terminal: você escreve o arquivo num editor qualquer, compila com javac e roda com java. Pode parecer trabalhoso, mas tem três vantagens para quem está começando:
- Você entende o que acontece. Na IDE, um botão verde faz tudo; quando algo dá errado, você não sabe qual etapa falhou. No terminal, você vê que o
javacgerou o.classe que ojavao executou. - As mensagens de erro são as do Java. A IDE mostra o erro do jeito dela (às vezes com outras palavras). As aulas mostram a mensagem do
javac, igual em todo lugar, e ensinam a lê-la (veja Lendo Erros do javac). - Você não depende de nada. Num servidor, numa prova ou num computador emprestado nem sempre há IDE, mas sempre há um terminal.
Quando você chegar ao Nível 2, com programas de várias classes, uma IDE vai fazer muita diferença. Até lá, qualquer editor serve. Um exemplo no terminal da Ana: ela escreveu o arquivo no editor, salvou como Main.java e conferiu o conteúdo com cat antes de compilar:
$ cat Main.java
public class Main {
public static void main(String[] args) {
System.out.println("Olá, mundo!");
}
}
$ javac Main.java
$ java Main
Olá, mundo!
1. O nome do arquivo termina em .java e é igual ao nome da classe: public class Main vai em Main.java (a aula Olá, Mundo explica por quê). 2. Salve em UTF-8, a codificação que guarda acentos do mesmo jeito em todo sistema. Os erros que aparecem quando uma das duas falha estão em Quando dá errado.
O próprio guia tem um editor: as caixas Experimente. Ele não substitui uma IDE, mas compila e roda na hora (a aula O Editor do Guia mostra tudo o que ele faz):
Brinque com o código: o editor do guia colore o código e numera as linhas, como um editor de código. Rode, depois apague o ; do fim da linha 3 e rode de novo para ver o erro no formato do javac.
public class Main {
public static void main(String[] args) {
System.out.println("Olá, mundo!");
}
}
As quatro ferramentas mais usadas
| Ferramenta | De quem | Preço | Pontos fortes | Bom para |
|---|---|---|---|---|
| VS Code + Extension Pack for Java | Microsoft | Grátis | Leve, abre rápido, serve para muitas linguagens. O pacote de extensões traz compilação, sugestões, depurador, testes e Maven/Gradle. | Quem já usa o VS Code ou tem um computador modesto. |
| IntelliJ IDEA | JetBrains | Grátis (recursos principais; antes chamada Community Edition); versão paga com recursos para web e empresas | Sugestões muito inteligentes, avisos de código ruim, refatoração. A IDE mais usada por programadores Java profissionais. | Quem vai trabalhar com Java; computadores com 8 GB de memória ou mais. |
| Eclipse IDE for Java Developers | Fundação Eclipse | Grátis, código aberto | Clássica, muito usada em empresas e universidades, cheia de plugins. | Quem vai trabalhar num lugar que já usa Eclipse. |
| Apache NetBeans | Fundação Apache | Grátis, código aberto | Simples de configurar, bom suporte a Maven e a interfaces gráficas (Swing). | Cursos e projetos com interface gráfica. |
Todas usam o JDK que você instalou (Linux, Windows e macOS). Algumas oferecem baixar um JDK por conta própria; tudo bem aceitar, desde que seja o 25.
VS Code: instalando o suporte a Java
O VS Code sozinho é só um editor de código. O suporte a Java vem de um pacote de extensões da Microsoft:
- Instale o VS Code (code.visualstudio.com) e abra.
- Clique no ícone de Extensões na barra da esquerda (quatro quadradinhos) ou tecle Ctrl+Shift+X.
- Procure por Extension Pack for Java, da Microsoft, e clique em Install. Ele instala várias extensões de uma vez, entre elas o suporte à linguagem (da Red Hat), o depurador, o executor de testes e o suporte ao Maven.
- Abra uma pasta (File → Open Folder) e crie um arquivo
Main.java. Ao digitarmain, o editor sugere escrever o métodomaininteiro (aceite com Enter). Aparecem as palavras Run | Debug acima domain: clique em Run, e a saída aparece no terminal de baixo.
IntelliJ IDEA: o primeiro projeto
- Baixe em jetbrains.com/idea a versão gratuita e instale.
- New Project: dê um nome, escolha a linguagem Java, o sistema de build IntelliJ (o mais simples) e, em JDK, o 25 que você instalou.
- A IDE cria uma pasta
srccom umMain.javade exemplo. Um triângulo verde aparece ao lado domain: clique nele e escolha Run. - A saída aparece no painel Run, embaixo, seguida de
Process finished with exit code 0("processo terminou com código de saída 0", o mesmo código de sucesso do terminal).
O Eclipse e o NetBeans seguem o mesmo roteiro: criar um projeto Java, escolher o JDK, criar uma classe com main, clicar em Run.
O que a IDE faz por você
Nada do que a IDE faz é mágica: por trás de cada botão está uma ferramenta do JDK que você vai conhecer neste guia.
| Recurso da IDE | Como aparece | No terminal, seria |
|---|---|---|
| Compilar | Automático, ao salvar ou ao clicar em Run | javac Main.java (javac e java) |
| Rodar | Botão ▶ verde ou "Run" acima do main | java Main |
| Apontar erros enquanto você digita | Sublinhado vermelho; passe o mouse para ler a mensagem | As mensagens do javac (Lendo Erros do javac) |
| Completar código | Ao digitar System.out., uma lista com println, print… | A tecla Tab do JShell, em versão turbinada |
| Formatar | Arruma o recuo e os espaços (Ctrl+Alt+L no IntelliJ, Shift+Alt+F no VS Code) | Fazer à mão (veja Sintaxe e Estrutura) |
| Depurar | Clicar ao lado do número da linha cria um ponto de parada; o programa para ali e mostra os valores das variáveis | jdb (Depurar) |
| Refatorar | Renomear uma variável e todas as vezes em que ela aparece, de uma vez | Procurar e trocar com cuidado |
| Gerenciar projetos | Baixa bibliotecas e roda testes | mvn, gradle (Maven, Gradle) |
A mesma mensagem, dois jeitos
Quando você erra o nome de uma variável, o javac do terminal responde assim (real; o código tem um erro de propósito: ntoa em vez de nota):
public class Main {
public static void main(String[] args) {
int nota = 8;
System.out.println(ntoa);
}
}
$ javac Main.java
Main.java:4: error: cannot find symbol
System.out.println(ntoa);
^
symbol: variable ntoa
location: class Main
1 error
Numa IDE, você nem precisa compilar: o ntoa fica sublinhado de vermelho enquanto você digita. Passando o mouse, o IntelliJ escreve algo como Cannot resolve symbol 'ntoa' e o VS Code, ntoa cannot be resolved to a variable (as palavras mudam de uma IDE para outra). Muitas vezes a IDE já oferece a correção: "trocar por nota?". É a mesma informação que o javac deu: o arquivo, a linha e o nome que ela não achou.
Missão: o editor do guia também aponta este erro. Rode, leia a mensagem e conserte o nome da variável para o programa mostrar 8.
public class Main {
public static void main(String[] args) {
int nota = 8;
System.out.println(ntoa);
}
}
public class Main {
public static void main(String[] args) {
int nota = 8;
System.out.println(nota);
}
}
Qual usar?
| Situação | Sugestão |
|---|---|
| Nível 1 deste guia | As caixas Experimente + qualquer editor de código (VS Code, por exemplo) + o terminal. |
| Computador com pouca memória (4 GB) | VS Code, ou um editor simples e o terminal. |
| A partir do Nível 2, com várias classes | IntelliJ IDEA ou VS Code com o Extension Pack for Java. |
| Projetos com Maven ou Gradle (Nível 3) | Qualquer uma das quatro; todas entendem esses projetos. |
| A escola ou a empresa já usa uma | Use a mesma: ajuda a receber e dar ajuda. |
A IDE completa nomes e conserta erros com um clique, mas só se você souber o que pedir. Quem aprendeu a ler a mensagem do javac entende também os avisos da IDE. Por isso as aulas continuam mostrando o terminal, mesmo para quem já usa uma IDE.
Quando dá errado
error: file not found: Main.java (mas eu salvei!)
$ ls Main.java.txt $ javac Main.java error: file not found: Main.java Usage: javac <options> <source files> use --help for a list of possible options
O que aconteceu: o editor salvou o arquivo como Main.java.txt. O Bloco de Notas do Windows faz isso quando o tipo está em "Documentos de texto (*.txt)", e o Windows esconde o .txt no Explorador de Arquivos, então você vê só Main.java. O javac procurou Main.java e não achou.
Como resolver: renomeie o arquivo (mv Main.java.txt Main.java no Linux e no Mac; no Windows, ative "Extensões de nomes de arquivos" na aba Exibir do Explorador e apague o .txt). No Bloco de Notas, salve escolhendo "Todos os arquivos (*.*)" e digitando o nome Main.java. Um editor de código não tem esse problema.
unmappable character (0xE1) for encoding UTF-8
$ javac Main.java
Main.java:3: error: unmappable character (0xE1) for encoding UTF-8
System.out.println("Ol�, mundo!");
^
1 error
$ file Main.java
Main.java: Java source, ISO-8859 text « o arquivo não está em UTF-8
O que aconteceu: o arquivo foi salvo numa codificação antiga (ISO-8859-1, também chamada "Latin-1" ou "ANSI" em editores do Windows), em que o á é o byte 0xE1. O javac 25 lê os arquivos como UTF-8, onde esse byte sozinho não é letra nenhuma, e por isso mostra um � e para.
Como resolver: salve de novo em UTF-8 (no VS Code, clique em "ISO 8859-1" na barra de baixo e escolha Save with Encoding → UTF-8; no Bloco de Notas, escolha "UTF-8" em "Codificação" ao salvar). Para um arquivo antigo que você não quer converter, dá para avisar o javac: javac -encoding ISO-8859-1 Main.java.
O que aconteceu: a IDE não achou um JDK. Acontece quando o JDK foi instalado depois da IDE, ou fora do lugar padrão.
Como resolver: nas configurações do projeto (no IntelliJ, File → Project Structure → SDK; no VS Code, o comando Java: Configure Java Runtime), aponte para a pasta do JDK: o seu JAVA_HOME, como /opt/jdk-25.
Exercícios
1. O que quer dizer IDE?
2. Quando você clica no botão ▶ de uma IDE num programa Java, o que acontece por baixo?
3. O javac diz file not found: Main.java, e o ls mostra Main.java.txt. O que fazer?
4. A codificação certa
Em qual codificação os arquivos .java devem ser salvos para os acentos funcionarem com o javac 25?
Resumo
- Editor de texto só escreve; editor de código colore e organiza; IDE junta editor, compilador, execução e depurador.
- As mais usadas: VS Code + Extension Pack for Java, IntelliJ IDEA, Eclipse e NetBeans, todas com versão gratuita.
- Cada botão da IDE é uma ferramenta do JDK: compilar =
javac, rodar =java, depurar =jdb. - O guia começa pelo terminal para você entender cada etapa e ler as mensagens reais do
javac. - Salve como
NomeDaClasse.java(cuidado com o.txtescondido) e em UTF-8.