Este artigo foi actualizado em Janeiro de 2020
Num mundo ideal, os bugs nunca chegariam à produção. Mas, os erros de software são uma parte inevitável da vida de um desenvolvedor. As ferramentas de depuração Java existem para nos ajudar a resolver erros mais rapidamente, para que possamos continuar a fazer o que fazemos melhor.
Esta lista de ferramentas de depuração Java irá ajudá-lo a avaliar suas opções rapidamente para que você possa encontrar o melhor para o trabalho.
Cobrir e corrigir erros Java, exceções, bugs & trava com facilidade. O Raygun captura cada falha e relatórios em tempo real
Raygun Crash Reporting
Uma das coisas mais difíceis sobre depuração é que você nem sempre sabe quais erros seus usuários estão experimentando. Raygun Error Monitoring tem tudo que você precisa para descobrir bugs, erros e falhas que acontecem na produção e além.
Raygun4Java permite que você envie exceções do desktop e console Java e aplicativos Scala por padrão. Você pode enviar todas as suas exceções para o seu painel do Raygun para que você possa ver um diagnóstico detalhado para cada erro, incluindo traços de pilha completa, dados relacionados ao método, função e nomes de classe, e mais.
A instalação e configuração não leva mais do que alguns minutos. O Raygun pode processar qualquer objeto que herda da classe Throwable
. Características avançadas como Breadcrumbs, Filters e Custom Tags facilitam também o processo de depuração.
Eclipse
Eclipse é um IDE open-source popular que é usado para desenvolvimento Java, mas também tem plugins para outras linguagens como PHP, Python, Ruby e C#. A plataforma Eclipse vem com funcionalidades avançadas de depuração que o ajudam a inspecionar seu código durante a execução, tornando-o uma ferramenta bem completa. Uma grande vantagem é que o fluxo de trabalho do Eclipse é conveniente porque você pode usar a mesma plataforma para desenvolvimento e depuração.
Uma das melhores funcionalidades do Eclipse é a Perspectiva de Depuração, que mostra informações relevantes de depuração lado a lado, tais como variáveis, pontos de interrupção, threads e pilhas de chamadas.
Com o Eclipse, você também pode suspender e retomar threads, passar pela execução do programa, inspecionar valores e avaliar expressões.
NetBeans
NetBeans é outra IDE livre e de código aberto. Assim como o Eclipse, as funcionalidades de depuração estão incorporadas na plataforma, então você só precisa baixar o IDE para obter a ferramenta de depuração.
NetBeans vem em diferentes pacotes de download; para Java, você precisará ou do Java SE ou da edição Java EE. Esta última também tem suporte para HTML5, JavaScript e os servidores GlassFish e Tomcat, portanto é uma escolha melhor para trabalhos de desenvolvimento mais sérios.
O Depurador NetBeans tem muitos recursos semelhantes ao Eclipse. Na verdade, ambos são excelentes ferramentas de depuração para inspecionar o código fonte e identificar problemas, como vazamentos de memória e problemas de concorrência. O NetBeans permite configurar pontos de interrupção e pontos de interrupção condicionais, passar pelo código, alternar threads e monitorar a execução em tempo real.
O NetBeans também fornece o útil recurso Visual Debugger para que você possa depurar os elementos visuais de seus aplicativos GUI Java e JavaFX. Com o Visual Debugger, você pode adicionar ouvintes às ações GUI, visualizar as propriedades dos componentes e a hierarquia dos componentes e localizar o código-fonte.
Se você utiliza o NetBeans, também obtém acesso à ferramenta incorporada NetBeans Profiler. Com o profiler, você pode verificar o uso da memória, o desempenho da CPU, os estados de thread e outras características de seu aplicativo Java. Estes recursos funcionam juntos para ajudá-lo a otimizar a velocidade e o uso de memória e reduzir a sobrecarga.
Como o NetBeans foi adquirido pela Apache Software Foundation no início de 2018, você pode esperar mais integrações e recursos ampliados no futuro – especialmente porque o Apache já hospeda muitos projetos Java da ferramenta de construção Maven para o servidor Tomcat.
IntelliJ IDEA
Besides Eclipse e NetBeans, o IntelliJ IDEA é o terceiro IDE que os desenvolvedores Java normalmente mencionam quando você pergunta qual IDE eles utilizam. Desenvolvido pela JetBrains, o IntelliJ IDEA vem com uma comunidade open-source e uma edição comercial paga. É principalmente um IDE Java, mas você também pode usá-lo com outras linguagens JVM como Groovy, Kotlin, e Scala. A edição comercial também suporta muitos frameworks JVM e não-JVM, como Spring, Java EE, Play, Grails, GWT, e Vaadin. Melhor ainda, ambas as edições vêm com suporte ao desenvolvimento do Android – ótimo se você estiver executando vários projetos. Assim como os depuradores IDE mencionados acima, o IntelliJ IDEA também inclui um depurador Java integrado que funciona fora da caixa.
IntelliJ IDEA tem todos os recursos de depuração padrão que você esperaria de uma ferramenta de depuração melhor da classe. O IntelliJ IDEA permite que você o faça:
>
- >
- Criar e configurar breakpoints e watchpoints
- Avaliar expressões
- Pausar e retomar a sessão de depuração
- Examinar tópicos suspensos
- Passar pelo código fonte
- Analizar o uso da memória
- … E mais
Você também pode usar o IntelliJ IDEA para depurar aplicações Java remotamente.
A depuração online é o recurso mais interessante e único do IntelliJ IDEA. O depurador em linha exibe os valores das variáveis dentro do código, bem ao lado da linha onde elas foram utilizadas. Sempre que o valor da variável muda, o depurador inline a destaca com uma cor diferente. Para verificar os valores, não há necessidade de mover para a janela de depuração ou passar o mouse sobre cada variável um a um como com With Eclipse e NetBeans.
Visual Studio Code
Você nem sempre precisa usar um IDE para depurar aplicativos Java. O editor de código-fonte multiplataforma da Microsoft, Visual Studio Code também possibilita a depuração de Java através do Debugger para extensão Java.
Se você usa Visual Studio Code para edição de código de qualquer forma e precisa de uma ferramenta de depuração leve e fácil de usar para o seu fluxo de trabalho de desenvolvimento Java, Visual Studio Code é uma ótima escolha. Embora não tenha tantos recursos avançados como os depuradores IDE, ele sabe tudo o que você precisa para uma sessão de depuração rápida.
Visual Studio Code O depurador Java do Visual Studio Code é baseado no Java Debug Server, que estende outra extensão do Visual Studio Code chamada Language Support for Java pela Red Hat.
VS Code debugger permite que você o faça:
- Executar depuração local e remota
- Configurar pontos de interrupção condicional e pontos de log
- Passar pelo código fonte
- Inspeccionar e observar variáveis
- Ver chamada stacks
- Debugar múltiplos threads
- Avaliar expressões
- Utilizar substituição de código quente
>
A extensão do depurador de código VS vem com muitas opções de configuração que você pode verificar nos documentos.
O Java Debugger (jdb)
Se não puder (ou não quiser) utilizar software externo para depuração Java, também é possível depurar aplicações Java a partir da linha de comandos. O Java Debugger (jdb) é um simples debugger de linha de comando fornecido pela Oracle. É o equivalente do GNU Debugger (gdb) para a máquina virtual Java. O Java Debugger está incluído no Java SE Development Kit, então se você tem o JDK instalado na sua máquina, você não precisa fazer mais nada. Você pode iniciar o depurador com o comando jdb
e acessar a lista de comandos usando o comando help
.
O Java Debugger é, na verdade, uma demonstração da arquitetura do depurador da plataforma Java (JDPA). O JDPA é uma coleção de três interfaces: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol), e JDI (Java Debug Interface). JDPA é uma arquitetura de depuração que fornece aos desenvolvedores ferramentas para criar seus próprios aplicativos de depuração – o jdb é apenas um dos possíveis usos do JDPA.
O depurador jdb permite que você execute sessões de depuração em profundidade na linha de comando. Com o debugger jdb, você pode:
- Lista, suspender, e retomar tópicos
- Avaliar expressões
- Imprimir todas as informações do objeto
- Definir pontos de parada
- Campos de observação
- Traçar chamadas ao método
- Passo através do código
- Permitar e prevenir a coleta de lixo de um objeto
>
>
Um depurador de linha de comando não é a melhor escolha para o trabalho diário de desenvolvimento devido à sua complexidade. No entanto, ele vem com uma vantagem – a portabilidade. Você pode configurá-lo em um servidor sem muita complicação, pois não precisa anexar o servidor a um depurador IDE remoto. Tudo isto faz do jdb uma ferramenta ideal para a rápida resolução de problemas, o que é importante num ambiente de produção.
Qual a melhor ferramenta de depuração Java para o seu projecto?
Debugging Java não tem de ser um desafio tão grande. Usando qualquer uma destas ferramentas de depuração irá tornar o processo de depuração muito mais rápido. Cada caso de uso será diferente, mas avaliar suas opções o ajudará a escolher a ferramenta certa para o seu projeto.
Debugging Java é mais fácil quando você sabe onde o erro está! Raygun Crash Reporting para Java ajuda os desenvolvedores a detectar, diagnosticar e resolver problemas com maior velocidade e precisão. Faça um teste grátis por 14 dias.