Desenvolvendo aplicações Java com o VS Code

Desenvolvendo aplicações Java com o VS Code

Desenvolvendo aplicações Java com o VS Code

Você que está iniciando na programação em Java, possivelmente já ouviu falar em vários ambientes de desenvolvimento (IDEs), como Eclipse, IntelliJ, Netbeans, STS, certo? E provavelmente bateu aquela dúvida em qual utilizar, adivinhei?

Pois bem, tem uma nova opção que tem se tornado bem atrativa para os desenvolvedores, que é o Microsoft Visual Studio Code, ou VS Code, como é popularmente conhecido.

O VS Code é um editor de código-fonte autônomo e multiplataforma, que pode ser utilizado no Windows, macOS e Linux. O grande diferencial desse editor é que além de ter o conceito “lightweight”, ou seja, de ser um ambiente leve em comparação a outras IDEs, ele também é altamente customizável, com centenas de extensões existentes para serem utilizadas.

Nesse artigo, vamos mostrar as principais funcionalidades e dicas para que você consiga iniciar o desenvolvimento de uma aplicação Java utilizando o VS Code.

Vamos lá?

Banner da Escola de Programação: Matricula-se na escola de Programação. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Instalação

Se o seu sistema operacional é Windows ou o macOS, o VS Code já tem um pacote de instalação que vai prover os principais recursos para o setup inicial do ambiente, que é o Coding Pack for Java. Nesse pacote de instalação já estão incluídos os seguintes itens:

  • JDK (Java Development Kit - pode variar a versão, de acordo com a data que você fizer o download, mas geralmente é uma versão LTS, ou seja, com suporte de longo prazo. No momento da publicação desse artigo a versão é a 17);
  • VS Code
  • Extensões essenciais Java (ou Java Extension Pack)

Caso você esteja utilizando o Linux, será necessário fazer o download e instalação separadamente desses três itens.

O que são essas extensões essenciais Java?

O Java Extension Pack é um pacote que contempla seis extensões essenciais para facilitar o desenvolvimento, build, debug e teste de aplicações Java. São essas:

Language Support for Java:

Essa extensão é fornecida pela própria Red Hat e é responsável por diversos recursos que otimizam o desenvolvimento, como: code completion, as-you-type reporting (que já detecta e destaca erros de sintaxe e compilação no momento da digitação), organização dos imports, ações de código (como gerar getters e setters, construtores, toString), trechos de códigos prontos (code snippets), suporte a arquivos individuais com extensão .java, para que sejam executados no próprio terminal do VS Code e muitos outros recursos já conhecidos por quem já utiliza outras IDEs.

Debugger for Java

É uma extensão da Microsoft que vai permitir que você faça a depuração do código, incluindo breakpoints (pontos de interrupção) para avaliar valores de variáveis e o que está acontecendo na aplicação, tendo a possibilidade de fazer substituições ‘a quente’ no código (hot code replaces). Tem recursos de step in/out/over para navegar nos métodos, pausa e continue, além de outras facilidades que ajudam na investigação de problemas e comportamentos inesperados na aplicação.

Test Runner for Java

Essa extensão, também da Microsoft, possibilita a depuração e execução de casos de teste escritos em Java, com uso dos frameworks JUnit ou TestNG. Essa extensão tem como pré-requisito a instalação das duas primeiras citadas.

Maven for Java

A extensão do Maven fornece suporte para criação de projetos seguindo algum arquétipo do Maven, bem como atalhos para inclusão e controle das dependências no POM (Project Object Model) além da customização de comandos.

Project Manager for Java

Essa extensão atua como um gerenciador de projetos, oferecendo algumas facilidades no que tange à visualização das principais configurações e estrutura do projeto aberto no VS Code.

Visual Studio IntelliCode

Por fim, a extensão Intellicode que é uma espécie de intellisense assistido, que já coloca como atalho no topo da lista do code completion, os comandos que tem mais possibilidades de serem utilizados, conforme o exemplo abaixo, onde após a digitação das palavras System.out ele já sugere os comandos mais usados, como println, printf e assim sucessivamente:

alt text: Imagem com fundo preto, mostrando o método main de uma classe Java, onde ao digitar System.out já aparecem algumas opções sugeridas pela extensão Intellicode, como println, printf e outras.

Vamos abrir o VS Code e começar a desenvolver?

Para executar a maioria dos comandos, utilizamos o atalho Ctrl + Shift + P ou pelo menu View → Command Palette. O nome do menu pode mudar caso esteja sendo usado em outro idioma. Aqui vamos manter as dicas utilizando o inglês por padrão.

Para iniciar um novo projeto Java, vamos abrir a paleta de comando e escolher a opção Java: Create Java Project.

alt text: Imagem com fundo preto, mostrando o comando Java: Create Java Project na paleta de comandos do VS Code

Repare que ele já abre uma nova tela com várias opções de projeto Java. O VS Code tem extensão para facilitar a criação com qualquer que seja a opção escolhida: Maven, Gradle, Spring Boot, Quarkus ou MicroProfile.

alt text: Imagem com fundo preto, mostrando algumas opções sugeridas para a criação de projetos utilizando Java, sem ferramentas de build, com ferramentas de build ou utilizando algum framework.

Vamos escolher a opção “No build tools” apenas para ver algumas opções básicas do VS Code.

Deverá ser informada a pasta na qual o projeto será gerado e o nome do mesmo. Ao prosseguir, já será criada uma estrutura de pacotes, com as pastas .vscode (que contém o arquivo settings.json), a pasta bin (que vai conter os arquivos com a extensão .class), a pasta lib (onde ficam os recursos ou bibliotecas utilizadas na aplicação) e a pasta src (onde fica o código-fonte, no nosso caso, as classes).

Já é criada a primeira classe, a App.java, com o método main e o nosso famoso Hello, World!.

alt text: Imagem com fundo preto, mostrando a estrutura de pacotes e a classe principal App.java já com o método main.

Para criar uma nova classe, podemos utilizar novamente a paleta de comandos e buscar a opção Java: New Java Class. Vou dar o nome Artigo para prosseguir com a criação da classe Artigo.java.

alt text: Imagem com fundo preto, mostrando a declaração da classe Artigo.java

Vamos incluir alguns atributos e usar os recursos da IDE para finalizar as implementações dos getters, setters, construtores e toString.

Veja que aqui na imagem a seguir, após a inclusão de alguns atributos, alguns já aparecem em vermelho.

alt text: Imagem com fundo preto, mostrando a estrutura da classe Autor, com alguns tipos desconhecidos, como Autor e Categoria, sublinhados em vermelho.

Veja também que para o tipo LocalDate já foi feito o import automático na linha um, indicando o nome completo (pacote + classe), que é java.time.LocalDate.

Para os tipos que estão sublinhados de vermelho, ao clicar no ícone da lâmpada ou clicar com o botão direito no ter, ou ainda, usar o atalho Ctrl + . , ele já faz algumas sugestões, sobre criar uma nova classe, interface, enum ou até mesmo usar como referência a classe Category do pacote java.util.Locale, conforme a imagem abaixo:

alt text: Imagem com fundo preto, mostrando as sugestões de correção para o tipo Categoria, não reconhecido como um tipo de um pacote conhecido Java.

Poderíamos escolher criar um enum para Categoria e uma nova classe para Autor e continuar codificando nossa aplicação. Uma vez conhecidos os tipos, ele passa a apresentar um sublinhado amarelo, indicando que o valor do nosso atributo não está sendo usado em lugar nenhum.

alt text: Imagem com fundo preto, mostrando a classe Artigo com todos os atributos sublinhados em amarelo, pois seus valores ainda não foram usados.

Para isso, vamos usar os atalhos do editor para criar automaticamente os getters e setters. Para isso, basta clicar com o botão direito na janela do editor, onde está aberta a sua classe e navegar até a opção Source Action.

alt text: Imagem com fundo preto, mostrando o menu que é exibido ao clicar com o botão direito na janela onde selecionamos a opção Source Action.

Algumas opções vão aparecer, como a de gerar testes, organizar os imports (incluindo referências ou removendo referências não utilizadas), gerar somente os getters, somente os setters, gerar ambos simultaneamente, construtores, e outras opções, como demonstrado na imagem.

alt text: Imagem com fundo preto, mostrando o menu com a lista de opções apresentadas ao selecionar Source Action.

Vamos gerar primeiramente os getters e setters:

alt text: Imagem com fundo preto, com todos os atributos da classe Autor disponíveis para serem marcados para geração dos getters e setters.

É possível escolher todos ou somente alguns atributos. Ao escolher todos, podemos observar que ele já vai criar corretamente os métodos de forma automática.

alt text: Imagem com fundo preto, mostrando a implementação dos getters e setters feita automaticamente para todos os atributos selecionados.

Podemos fazer o mesmo procedimento para criar um construtor com todos os atributos e também um override do método toString.

Clicar com o botão direito na janela >> Source Action >> Generate Constructors…

alt text: Imagem com fundo preto, mostrando a implementação do construtor para a classe Artigo, incluindo todos os atributos.

A mesma coisa para o toString. Botão direito na janela >> Source Action >> Generate toString()...

Para finalizar, vamos criar um objeto da classe Artigo na nossa classe App e visualizá-lo no Terminal. Na classe App.java, vou fazer a seguinte implementação:

alt text: Imagem com fundo preto, mostrando a implementação do método main, incluindo a criação de um objeto do tipo artigo e a impressão do seu conteúdo com o comando System.out.println.

Ao clicar no atalho Run, logo acima do método main, vamos ter a seguinte saída no terminal:

alt text: Imagem com fundo preto, mostrando os dados do objeto nomeado como artigo sendo impresso no terminal.

O artigo foi impresso de acordo com o código gerado no toString da classe Artigo.

E aí, gostou?

Como você pôde ver, o VS Code está preparado para oferecer diversas facilidades e recursos para que você consiga desenvolver aplicações Java com rapidez e confiabilidade, não deixando a desejar diante das IDEs mais conhecidas e robustas! A infinidade de extensões disponíveis para personalizar o seu ambiente e fazer rapidamente o setup inicial de um projeto independente do framework ou da ferramenta de build tem ganhado o coração de muitos devs. E você? Vamos dar uma chance pro VS Code e explorar suas funcionalidades e recursos?

Se você está mergulhando no desenvolvimento Java e quer conhecer mais IDEs além do VS Code, confira esses conteúdos que separamos para você!

Jacqueline Oliveira
Jacqueline Oliveira

Engenheira de Software, formada em Ciência da Computação e pós-graduada em Arquitetura e Engenharia de Software, atua como desenvolvedora backend Java desde 2010.

Veja outros artigos sobre Programação