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.
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.
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
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..
Apache Ant is really useful. We also use Ant + ivy in our projects, and its great
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 …. )
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.
Disagree :)
Here is my list:
JDK ;)
Maven
Eclipse
SonarQube
Acceleo (if we stick to the 5)
Ant is soo primitive. Please update this post…
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!