Eclipse
Eclipse is perhaps the most used integrated development environment (IDE) for developing Java applications. No matter whether you want to develop some apps for Android or write some programs for software like Mathematica, Eclipse is an integrated solution for you. It has a large number of plugins. Additionally, it recently debuted within Microsoft’s Visual Studio to ease your development.
The latest version of Eclipse — called Eclipse Che — comes with Cloud IDE to let you access your programs remotely. It also has an option to work as a collaborative workspace server.
Eclipse SDK is available as a free and open source (FOSS) software. It is not compatible with the original GNU General Public License. However, it uses GNU Classpath and can run under IcedTea project.
Chef
Chef is a Ruby-based configuration management tool that offers you an easy way to configure your development or production environment right on your premise. You can also integrate tasks into cloud-based platforms such as Amazon EC2, Google Cloud Platform, OpenStack or Microsoft Azure.
Scripts written by Chef are known as recipes and their groups are being called cookbooks. The tool uses Ruby as the base of its scripts to provide you a generic scripting language for enabling automated infrastructure activities. Additionally, it has Erlang support on the server side.
Chef was initially designed for Linux, but its newer versions are fully compatible with Windows devices as well. It features a command-line interface (CLI) and comes with a client/server architecture.
JUnit
JUnit is a unit testing framework for Java developments. It allows you to write and run unit tests that help in examining class, method and functionality of your codes.
Cross-platform JUnit is based on xUnit architecture. You can access its code directly from GitHub to modify its usage.
There are some specific annotations that JUnit uses to run your unit tests. For instance, you have to use @Test to test methods and @Before or @After to define a particular method for execution before or after each of your test methods.
Mockito
Mockito is a mock testing framework for Java. It lets you verify the behaviour of the system under test (SUT) without any prior expectations and enables the creation, verification and stubbing of mocks.
Abilities such as readable tests and verification errors make Mockito one of the most popular testing tool. It has its presence on GitHub to enable modifications in its source code.
Flyway
Flyway works as an open source database migration tool. It has a command-line client as well as a Java API, Maven, Gradle and SBT plugins and Ant tasks.
Databases that are supported through Boxfuse-developed Flyway include Oracle, SQL Server, SQL Azure, MySQL, MariaDB, Google Cloud SQL, Sybase ASE and Phoenix among others.
While Flyway traditionally uses SQL for migrating data, you can also enable a specific Java code to shift your database using JDBC API. The tool is also capable of handling your database creation or migration on the very first run of your application.
So these were the five open source tools that will help you develop some interesting Java applications. These are available for free download and can be modified by simply using the source code.