It’s as true for Java developers as it is for woodworkers: You can’t do the job right without the right tools. Fortunately, there are plenty of Java tools designed to make it significantly simpler to write good Java code—and help you make your Java code even better.
You’ll probably know many of the tools on this list of 18 choices, but others may be new to you. And odds are you haven’t tried them all yet!
- Gradle: Build tool. Automates the building, testing, publishing, deployment, and more of software as well as generating static websites or documentation.
- Eclipse: Open-source integrated development environment (IDE). If you could have just one tool for Java development, Eclipse would be a good choice.
- IntelliJ: IDE made by JetBrains, available in an Apache 2-licensed community edition and a commercial edition. IntelliJ provides similar features to Eclipse, with a smooth, developer-friendly experience.
- YourKit: Java profiler. Combines powerful analysis capabilities, on-demand profiling during both development and production, free embedding into production, and seamless IDE and application server integration.
- Clover: Code coverage tool from Atlassian. Runs in your IDE or continuous integration system, and includes test optimization to make tests run faster and fail sooner.
- Mockito: Mock library. Open-source testing framework that enables the creation, verification, and stubbing of mocks.
- Jetty: Lightweight, embeddable app server.
- Hibernate: Object-relational mapper. Implements the Java persistence API.
- VisualVM: JVM monitor. An all-in-one Java troubleshooting tool that comes with the JDK.
- JUnit: Unit test framework. Core tool of test-driven development that enables repeatable, white-box testing.
- Jenkins: Continuous integration tool. Customizable with more than 600 plugins.
- Spring Boot: Spring application development system. Works in your build system. Supports Gradle and Maven.
- Guice: Lightweight dependency injection/inversion of Control (IoC) framework, from Google.
- Guava: Utility library. Contains core libraries that Google relies on in Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
- FindBugs: Static code analyzer. Classifies potential errors in code as scariest, scary, troubling, or “of concern.” Available as a standalone GUI or as a plugin for Eclipse, NetBeans, IntelliJ, Gradle, Hudson, and Jenkins.
- Jackson: JSON parser. Aims to be fast, correct, lightweight, and ergonomic for developers.
- Snappy: Compression/decompression library from Google Code. A great resource when speed is a requirement.
- JD-GUI: Decompiler. Standalone graphic utility that displays source codes of “.class” files. Free for non-commercial use (i.e., can’t be included or embedded in commercial products).
Of course, don’t forget New Relic Java Monitoring, the best way to see everything in your Java applications. With New Relic, you can pinpoint code-level application performance issues quickly so you can fix them faster.