DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Database Integration Tests With Spring Boot and Testcontainers
  • Top Six React Development Tools
  • Send Email Using Spring Boot (SMTP Integration)
  • How To Scan and Validate Image Uploads in Java

Trending

  • Database Integration Tests With Spring Boot and Testcontainers
  • Top Six React Development Tools
  • Send Email Using Spring Boot (SMTP Integration)
  • How To Scan and Validate Image Uploads in Java
  1. DZone
  2. Coding
  3. Java
  4. What Is the Best Java Debugger?

What Is the Best Java Debugger?

I feel that in the modern world of development, there are too many factors to pick a single tool for debugging any language, let alone Java.

Ben Donnelly user avatar by
Ben Donnelly
·
Aug. 05, 20 · Opinion
Like (2)
Save
Tweet
Share
4.16K Views

Join the DZone community and get the full member experience.

Join For Free

Many people might think this a simple question; I am not one of them. I feel that in the modern world of development, there are too many factors to pick a single tool for debugging any language, let alone Java.

In The Beginning

Let's take a step back and look at where we started with debugging, and while I am not going to get into the history of debugging, we should look at some of the basic tools used for debugging Java, aside from logging and system-out.

JDP

Let's start with a quick look at the Java debugger (Java Discovery Protocol - JDP), which is a command-line tool used for debugging Java applications. This tool ships directly from Oracle, so you can be sure it will work; however, it can be complex to use and require knowledge of where you want to debug ahead of time.

A positive aspect of this tool is the fact that you can use it on the same box where the Java Virtual Machine (JVM) is running. This set-up means you do not need to deal with the complexities of connecting any external service that might be restricted by firewalls, which is particularly useful if you are deploying your Java applications into Docker containers. (which let's be honest, who isn't).

And while a command-line tool is not the best option for everyday work, what other options are available?

IDEs

Integrated Development Environments (IDEs) provide a suitable method of easily debugging your applications while helping streamline the development process by removing a lot of the pain related to configuring a project and remembering the numerous APIs that are inherent with coding.

While there are many IDEs available, NetBeans, Eclipse, and (my favorite) Intellij, from JetBrains, are the best three for Java. While there are other options on the market, what makes these tools stand-out is their extensive support and expertise in this programming language.

With any of these IDEs, you can easily debug your application and view the data alongside the code that triggered it, and view data changes as the program progresses. What differentiates IDEs are that some apps have fairly basic toolsets, whereas others are more advanced, allowing for additional debugging features, such as inline variable views and expression evaluation.

The Next Level

While the tools, processes, and methods of program development have grown and changed – debugging has not evolved. In most modern applications, we are dealing with distributed systems, microservices, and a growing number of serverless deployments.

Old-school traditional debugging tools are struggling with these new environments due to complex and virtualized networks, restricted resource allocations, and multiple deployments. The changing level of complexity raises the question; how do you debug an application using an IDE when 20 instances are running across a distributed environment? You can't, it does not work.

The Future. Next-Gen Debugging.

To live and survive in a world of virtualized networks, complex, and multiple deployments, what you need is a tool designed to handle today's complexities. NerdVision, built from the ground-up for today's environment by the team who developed the award-winning FusionReactor, enables you to debug your modern applications with the ease and efficiency can you cannot get with IDEs built for yesterday's architecture.

NerdVision helps programmers reduce the time spent debugging by not having to redeploy your application to enable debugging or logging. Programmers install and change Tracepoints (a kind of breakpoint, that does not block your application) without restarts. Better yet, the same toolset works on data that has already been deployed in production or is still local.

NerdVision delivers a full set of features that you see in IDEs:

  • Secure access to your git repository
  • Full support for conditional breakpoints
  • Full support for custom watch statements
  • Broad or targetted debugging of 1 or many instances of your application simultaneously
  • Collaboration with team members to debug together
  • Cloud-based debugging
  • Long-lived tracepoints across redeploys

The company's vision is to help programmers evolve their development and debugging efforts to support today's application reality. Developers who are embracing this new method of debugging, locally or in production, are more productive, have less downtime, and have positioned themselves for tomorrow's challenges.

Summary

To summarise, the best debugger for Java is dependent on your use case; if you are debugging in an isolated environment, then a tool like JDP is useful, even though it requires a high skill level. If debugging a single application locally, then a full IDE is hard to beat. However, when it comes to debugging distributed systems, a tool like NerdVision is critical and is likely something you should be using today – for both the distributed systems and your isolated and local applications.

Java (programming language) application

Opinions expressed by DZone contributors are their own.

Trending

  • Database Integration Tests With Spring Boot and Testcontainers
  • Top Six React Development Tools
  • Send Email Using Spring Boot (SMTP Integration)
  • How To Scan and Validate Image Uploads in Java

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: