Core Java

5 tools for Java developers

A way to improve the Java code we write is to work with the best tools. So, let’s check out the 5 most used tools that IDR Solutions suggests to help Java Developers write better code.

FindBugs

FindBugs is an open source program, distributed under the terms of the Lesser GNU Public license and operates on Java bytecode rather than source code. It can identify potential errors in the code of Java programs, such as null pointer dereferences, infinite recursive loops, bad uses of the Java libraries and deadlocks.

FindBugs is mainly used for identifying serious defects in large applications and is capable of determining the severity of potential errors and are classified in ranks(scariest, scary, troubling, of concern). It is available as plug-in for Eclipse, NetBeans, IntelliJ IDEA. It can be used from the command line or within ant, eclipse, maven, netbeans and emacs.

Apache Ant

Apache Ant is an open source Apache project, released under the Apache Software License. It uses XML but is implemented in Java and is mainly used for Java projects. It consists of built-in tasks that allow developers to compile, assemble, test and run Java applications.

Ant can also be used in building non Java applications, such as C or C++ applications andgenerally in types of process which can be described in terms of targets and tasks. It is flexible and does not put restrictions on coding conventions or directory layouts for Java projects. It is available for Eclipse, NetBeans, and IntelliJ IDEA.

JProfiler

JProfiler is a commercially licensed Java profiling tool developed by ej-technologies GmbH, mainly designed for use with Java EE and Java SE applications.It can be very useful when developers need to analyze performance bottlenecks, memory leaks, CPU loads and resolve threading issues.

It supports both local and remote profiling, that is analysis of applications running on the same machine or remote machines. It can profile the information in both cases, so users can see live through a visual representation showing the load in terms of active and total bytes, instances, threads, classes, and garbage collector activites.

JProfiler it can be either a stand-alone application or a plug-in for the Eclipse, NetBeans, and IntelliJ IDEA and Orcale JDeveloper software development environments. It is also available as part of application server integration in Adobes Coldfusion and Glassfish.

Bash

Bash is a UNIX shell, or command language interpreter, written for the GNU Project as a free software replacement for the Bourne shell. It is used as a command processor, typically running in a text window, and allows for type commands which cause actions. It reads commands from a file and supports filename wildcarding, piping, command substitution, variables. It can control structures for condition-testing and iteration. It is particularly useful as it allows for the automation of some tasks using Bash scripts.

Sonarqube

SonarQube is an open source platform that has become a world leader in code quality management systems, and is well known for its Continuous Inspection of code quality.

Appart from Java it also supports C/C++, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, and COBOL. It can be used as part of Android development. It integrates with Maven, Ant, Gradle and other continuous integration tools. It reports on duplicated code, coding standards, unit tests, code coverage, complex code, potential bugs, comments and design and architecture.

Theodora Fragkouli

Theodora has graduated from Computer Engineering and Informatics Department in the University of Patras. She also holds a Master degree in Economics from the National and Technical University of Athens. During her studies she has been involved with a large number of projects ranging from programming and software engineering to telecommunications, hardware design and analysis. She works as a junior Software Engineer in the telecommunications sector where she is mainly involved with projects based on Java and Big Data technologies.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Andy
10 years ago

Nice list, and I mostly agree. What’s missing, even though it’s kind of obvious, is using an excellent IDE like IntelliJ, Eclipse or NetBeans. One of the greatest strengths of Java are in my eyes these tools (or actually swiss army knifes).

Also I can recommend YourKit as Java Profiler. Commercial as well (not affiliated) but really simple to use and providing heaps of tools and insights.

Philipp
Philipp
10 years ago

Hello,
why do you have Apache Ant in your list?
In the last 5 years I have never used Ant in different Java projects? Maven? Gradle?
Why do you mention FindBugs? When using Sonarcube, you use Findbugs on the serverside already!
And if you using IntelliJ (: I agree. THE BEST IDE for Java) you see most of the common mistakes as yellow or even red errors already.

So my list would be:
IntelliJ, Git, Jenkins, Sonarqube

Andy
10 years ago
Reply to  Philipp

Philipp, I have to say, that I gave maven a try – but never really found a way to work around its quirks. We actually use Ant + Ivy in our projects and are quite happy. Of course Gradle and SBT are more modern, but Ant gets the job done as well. So it’s more or less a personal choice. I think IntelliJ supports them all quite well..

Abhishek
10 years ago

Apache Ant is really useful. We also use Ant + ivy in our projects, and its great

Travaglia
8 years ago

Good Paper but i think maven is most used than Ant. Findbugs is inclued into SonarQube so if you have Sonarqube you have findbugs ( and PMD …. )

taylor
taylor
8 years ago

This article should be called 5 tools java developers already know about. Bash ??? really ? If you don’t know what a shell is, you’re not a developer.

bb
bb
8 years ago

Disagree :)

Here is my list:
JDK ;)
Maven
Eclipse
SonarQube
Acceleo (if we stick to the 5)

Juan
Juan
8 years ago

Ant is soo primitive. Please update this post…

Vitor
Vitor
8 years ago

I’m sorry, I found this article very weak. Don’t get me wrong but…
Ant? How about maven? You can run ant scripts in maven with an ant plugin. Bash? What do you need bash for if you’re using ant already?
SonarQube is a good choice (but comes with a findbugs plugin). What about an IDE? JProfiler is definitely a good choice!

Back to top button