Our developers spend a lot of time buried in Java code and we use a variety of different IDEs (Integrated Development Environments) to develop Java code, so I thought it would be good to compile a list of the best free IDEs out there for Java programmers, developers and coders.
In this article, I will be taking a look at 11 different IDEs. Everyone has different requirements and we feel one of the strengths of the Java world is the choice available.
These IDEs offer a variety of features: building Java applications, TestNG, debugging, code inspections, code assistance, JUNIT testing, multiple refactoring, visual GUI builder and code editor, Java, Maven build tools, ant, do data modelling and build queries, and more.
NetBeans is an open-source Integrated Development Environment written in Java. Development of NetBeans has really accelerated since it became part of the Apache project.
The NetBeans IDE supports the development of all Java application types (Java SE, JavaFX, web, EJB and mobile applications) out of the box. NetBeans is modular in design. This means it can be extended by third-party developers who can create plugins for NetBeans to enhance functionality (Our PDF Plugin for NetBeans is a good example).
NetBeans has now moved to Apache, making it easier for people to get involved and contribute. They have a new website explaining more about Apache NetBeans.
The NetBeans IDE can be used to develop in Java, but also supports other languages. These include PHP, C/C++, and HTML5.
NetBeans features include an Ant-based project system, support for Maven, refactoring and version control (supporting CVS, Subversion, Git, Mercurial and Clearcase). It is also released under a dual license. These consist of the Common Development and Distribution License (CDDL) v1.0 and the GNU General Public License (GPL) v2.
NetBeans is cross-platform and runs on Microsoft Windows, Mac OS X, Linux, Solaris and other platforms supporting a compatible JVM. It can also be used for working with Cloud applications. This useful guide covers how to use the NetBeans IDE with the Google App Engine.
If you would like to find out more about NetBeans we have a series of articles which includes lots of tips and tutorials.
Eclipse is another free Java IDE for developers and programmers. It is mostly written in Java. Eclipse lets you create various cross-platform Java applications for use on mobile, web, desktop and enterprise domains.
Eclipse is available under the Eclipse Public License and is available on Windows, Mac OS X and Linux.
IntelliJ IDEA Community Edition is a free Java IDE (Integrated Development Environment). It is mainly used for Android app development, Scala, Groovy, Java SE and Java programming. It is lightweight in design and comes with useful features like JUnit testing, TestNG, debugging, code inspections, code completion, and support for multiple refactoring. Plus Maven build tools, ant, visual GUI builder and code editor for XML and Java.
There are some features missing from the Community Edition. If you require more you can buy a license to unlock all the features.
IntelliJ Idea Community Edition is is released under the Apache 2 License.
Android Studio from Google is mainly designed for developing on the Android Platform. However it is capable of running and editing some Java code.
Originally it was built on the IntelliJ IDEA Community Edition created by JetBrains. It features a Flexible Gradle-based build system, build variants and multiple APK generation. It has expanded template support for Google Services and various device types and a rich layout editor with support for theme editing. It also has Lint tools to catch performance, usability, version compatibility, and other problems.
Android Studio also comes with ProGuard and app-signing capabilities. It also features built-in support for Google Cloud Platform. Projects can be configured to use specific Java Development Kits.
Android Studio is freely available under the Apache License 2.0. It is available for download on Windows, Mac OS X and Linux. It replaced Eclipse as Google’s primary IDE for native Android application development.
Enide Studio 2014 Plugin includes:
– Nodeclipse 0.17, – Chrome Development Tools, AngularJS for Eclipse, TernIDE, Eclipse WTP WebResources, TCF Terminals, MarkDown (*.md) Editor, – GitHub Flavored Markdown (GFM) Viewer, various themes, Nodeclipse EditBox, RestClient Tool. StartExplorer, Git Add-on, Maven, Gradle integration, Minimalist Jade Editor and more…
BlueJ is an integrated development environment (IDE) for the Java programming language. It has been mainly developed for educational purposes. However, it is also suitable for those who wish to do small-scale software development. It runs with the help of a JDK (Java Development Kit).
BlueJ is mainly developed for the teaching of object-oriented programming. Its design differs from other development environments as a result.
The main screen graphically shows the class structure of an application under development. Objects can be interactively created and tested. This interaction facility, combined with a clean, simple user interface, allows easy experimentation with objects under development. This allows beginners to get started more quickly, and without being overwhelmed.
Newbie users can check values and call methods on objects. They can also pass them as parameters and Java expressions can be invoked without compiling. This means BlueJ is a powerful graphical shell/REPL for Java.
The BlueJ project is free and open source software. It is licensed under GNU GPL with the classpath exception. There are popular textbooks designed for teaching introductory university/college courses with BlueJ. There is also a site full of teaching resources. It can run on Windows, Mac OS X, Linux and other platforms which run Java. It can also run without installation from a USB stick.
jEdit is a text editor with hundreds (counting the time developing plugins) of person-years of development behind it. Most people argue that jEdit beats many expensive development tools for features and ease of use. In particular the jEdit core comes with a built-in macro language. This is an extensible plugin architecture. Hundreds of macros and plugins are available.
There is also an auto indent function, and syntax highlighting for more than 200 languages. It has support for a large number of character encodings including UTF8 and Unicode. Plus folding for selectively hiding regions of text, word wrap, and more.
It can also be used for source code editing, search and replacing and file management. jEdit is written in Java, so it runs on Mac OS X, OS/2, Unix, VMS and Windows. It is released as free software with full source code, provided under the terms of the GPL 2.0.
jGRASP is a lightweight IDE, primarily created for automatic generation of software visualizations to improve the comprehensibility of software. It is capable of producing static visualizations of source code structure and visualizations of data structures at runtime. jGRASP produces Control Structure Diagrams (CSDs) for Java, C, C++, Objective-C, Python, Ada, and VHDL. Complexity Profile Graphs (CPGs) for Java and Ada are also supported. As are UML class diagrams for Java. It has dynamic object viewers and a viewer canvas. This works in conjunction with an integrated debugger and workbench for Java.
The viewers have a built in feature that allows them to identify data structures. This means they can recognize objects that represent traditional data structures. For example stacks, queues, linked lists, binary trees, and hash tables. These can then be displayed appropriately.
jGRASP is implemented in Java. It was developed by the Department of Computer Science and Software Engineering in the Samuel Ginn College of Engineering at Auburn University.
It can run on any platform that can run a Java Virtual Machine (Java version 1.5 or higher). At present the jGRASP web site offers downloads for Windows, Mac OS, and as a generic ZIP file suitable for Linux and other systems.
JSource is a free Java IDE. It is a good option for Java developers and programmers.
JSource is useful for creating cross-platform Java applications for various domains. It is extremely lightweight. You can use JSource to run, compile, edit and create Java files. Its main features are syntax highlighting for multiple languages and Java Swing components. In version 2.0 of JSource you can use jEdit syntax packages. Plus you can incorporate other open source Java tools used for rapid development. These tools have been modified to work with the core JSource structure.
JSource is available under a GNU General Public License version 2.0 (GPLv2).
JDeveloper comes in 3 flavors. These include the Java Edition, J2EE edition and Studio Edition which comes with a whole different set of features.
The Java Edition comes with out of the box Java Support. it has a Code Editor and Code Navigation. Refactoring, compatibility with Swing, Unit Testing, Version Control, Auditing & Metrics, Debugging and profiling are all included. It supports Ant, Maven, XML and Open API & Extensions.
The same IDE platform also serves as the basis of another Oracle product, SQL Developer.
DrJava is an extremely lightweight development environment for writing Java programs. It has been designed primarily for students. There is an intuitive interface and the ability to interactively evaluate Java code.
It is best used as a unit testing tool, source level debugger, or interactive pane for evaluating text of the program. There is an intelligent program editor and it can be used for more depending on your requirements.
It is available for free under the BSD License.
Hopefully you’ve found this guide on the best IDEs for programming, developing and coding Java useful.
What IDE do you use, let us know!
If you are interested in learning Java, we recommend you read our articles on Open JDK projects you should know about in 2019 and our large back catalogue of Java articles. We also have some excellent guides on what is new in Java 8, Java 9 and Java 10.
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.