Application development using Java involves many moving parts and can be tough without an integrated development environment. Fortunately, there are many Java IDEs and editors available out there in the wild that make java programming an absolute breeze. Choosing the best Java IDE, however, can be a time-consuming task.
Which Java IDE is good for you?
This is the question that you need to answer and completely depends on your programming needs, budget at hand, and liking.
Java is widely used for developing full-stack web applications, android apps, games, networking, enterprise development, embedded systems, education, learning, and much more, and every area has some specific development needs.
For beginner programmers, students and learners, it is good to start off with something very simple like Eclipse Java IDE, BlueJ, or DrJava. You can even look at an online Java editor or configure Xcode, Android Studio, or VS Code for Java development.
For Enterprise-grade J2EE development and other Java-based large-scale projects, it is advisable to go with feature-rich development platforms like IntelliJ, fully configured Eclipse, or something like MyEclipse.
Talking about full-stack development, MyEclipse specifically provides great support for full-stack development combining Java and other frontend technologies like ReactJS.
If you are into Android development, it might be a good idea to go for a more specific IDE like Android Studio which offers features needed for speed mobile app development.
Covered in this article are the 10 best Java IDEs available in the market as of today that match modern development needs and offer smart tools for speed and efficient development.
Let us start off with Eclipse –
1. Eclipse – Popular Java IDE (Free Tier)
Talking about Eclipse, almost all the Java developers I know from my programming days have used Eclipse at some point of time in their programming career.
Eclipse has an ecosystem of its own with a huge community of developers, great documentation, and tons of plugins to make java development an absolute breeze. Eclipse also has a dedicated marketplace where you can get plugins to customize your development experience the way you want.
Eclipse is mostly written in java itself and is available free of cost as an open-source Java IDE under Eclipse public license. You can run Eclipse on Windows, Mac OS X, Linux, or anything that runs java.
As you know by now, Eclipse is extendable, and apart from the plugins, there are fully loaded free and commercial Java IDEs built on top of Eclipse, for both desktop as well as in cloud development.
You may also like to read: Best Eclipse Plugins
Some of the notable options include –
Fast, lightweight, and quick to get started with. Eclipse Che is the developer workspace and cloud IDE that on-boards you on a development project without the need of installing the software.
You can work in the browser or connect your desktop-based IDE to the cloud workspace.
Another one from Eclipse foundation, in the cloud. Not everyone loves it but I know programmers who like to work in the Orion cloud environment, for the reasons you will need to explore. I might share later once I get my hands-on with this one.
You can download Eclipse here at – eclipse.org/downloads.
Read more about Eclipse – eclipse.org/ide.
2. IntelliJ IDEA – Best Java IDE (Commercial Version)
IntelliJ IDEA is another full-featured Java IDE, it comes in two flavors – Free community Edition and a much advanced “Ultimate Edition” that targets enterprise developers and comes with a license fee.
The free edition itself comes packed with many features and can be used to build small-scale JVM as well as Android apps, or can be used by beginners. In fact, Google’s official Android development platform Android Studio is based on the free community edition of IntelliJ IDEA.
IntelliJ Idea is one of the best Java IDEs which supports Java, Kotlin, Groovy, Scala, Android, Gradle, SBT, Git, SVN, Mercurial, and CVS in the free community edition.
The basics like code completion, intelligent refactorings, deep static analysis, debugger, test runner, etc., of course, are included in the free community edition.
The Ultimate edition brings in additional features like –
- Spring Java MVC framework, Spring Security, Spring Boot, Spring Integration, and others
- Support for frameworks like Node.js, Angular, React, ReactJS, Vue.js, Apache Flex, Adobe AIR, Thymeleaf, Freemarker, Velocity, and much more.
- Java EE support including JSF, JAX-RS, CDI, JPA, etc
- Grails, GWT, Griffon, and Vaadin support.
- Version control with Team foundation server, Perforce, Clearcase, and Visual SourceSafe
Deployment is supported with almost all the servers including Tomcat, TomEE, GlassFish, Resin, JBoss, WildFly, Weblogic, WebSphere, and Virgo. Build tools include Gulp, Grunt, Webpack, and NPM via a plugin.
You can download the Community Edition (free of cost) of IntelliJ IDEA Java IDE here at – Download IntelliJ IDEA community edition.
You can read more about IntelliJ IDEA here at – jetbrains.com/idea.
3. Visual Studio Code – Lightweight Java IDE
Well, VS code is not a dedicated Java IDE, but it can be transformed into a lightweight and productive java editor with the use of extension packages. I love VS code for the fact that it is absolutely simple to use, lightweight, ergonomically designed for ease of development, and free.
There are many extensions available to customize VS Code for Java development, some of the popular names include Maven for Java, Spring Boot Tools, TomCAt, Jetty, CheckStyle, Spring Initializr, Debugger, TestRenner, and many more.
Read more about VS Code for Java here at – Visual Studio Code for Java
4. Apache NetBeans – Free Java IDE (Bright Future)
Yes, It is now Apache NetBeans!! You can set up NetBeans on Windows, Linux, Mac OS X, and Solaris.
Going back in history – a decade or so back, NetBeans was slow and lacked features, but that is not the case anymore. As of today, NetBeans is a feature-rich and versatile open-source IDE for Java.
Oracle acquired Sun Microsystems in 2010 and NetBeans became part of Oracle, and by the end of 2019, NetBeans was included as an Apache Incubator project. With the backing of Oracle and the rich ecosystem of apache, the future seems quite bright for NetBeans.
Talking about features – NetBeans Java IDE is an end-to-end development environment that aids analysis, design, coding, profiling, testing, debugging, compiling, running, and deploying applications. Some of the key features include –
- Full support for Dependency Injection, contexts, Facelets (JavaServer Faces), RichFaces, ICEfaces and web EJB, etc, java persistence API, JSP, spring, struts, servlets, web services and Hibernate frameworks.
- Code completion is an absolute breeze, and NetBeans is always the first IDE to support the latest versions of JDK, Java EE, and JavaFX.
- Code templates are another good feature, specifically when you are glued in with a keyboard for speed coding.
- Support for auto-formatting of code per the defined rules. Auto inserting brackets, braces, and quotes.
- Auto code folding, Ex – for methods, import statements, comments, etc
- Autosuggestion of names of fields and variables, chain completion, static import completion, import management, JPA completion, and much more.
- Award-winning GUI builder that offers drag and drop tools to build desktop applications using Swing and NetBeans Platform.
- Recent enhancements include integration with Gluon Open JFX samples, and improved working with Gradle and Maven.
Check out more features of NetBeans open-source Java IDE here at – NetBeans Features
If you are working in an Oracle ecosystem, there is no better option than NetBeans, it offers seamless support for GlassFish and Payara. You can register and access the Oracle database, Oracle Weblogic application server, Oracle Java Cloud Service, Oracle Coherence Server, MySQL, and much more, directly from within the IDE.
Historically, Netbeans was first released (pre-release) in 1997 as a student project in the Czech Republic. You can download NetBeans here at – Download NetBeans.
You may also like: IntelliJ vs Eclipse vs NetBeans
BlueJ is another lightweight Java IDE for beginners and is used by millions of students and beginner programmers. BlueJ is created by Kings College London and supported by Oracle, with an aim to keep things simple for beginner programmers. Historically, it was developed and released by Michael Kölling back in 1999.
You can run BlueJ on Mac OS X, Windows, Linux, and all other platforms that support Java/JavaFX 11. You can also run it from a USB stick without installation, pretty cool!
One of the key features that BlueJ brings to the table is its graphical Shell/REPL for Java where you can interact with objects, inspect objects while the program is running, visual object inspection and display field values during debugging, passing objects as parameters, call methods and invoke java expressions on the fly without compiling.
The BlueJ team loves it and offers free support to users for anything related to installation issues, compatibility issues, etc., and all. They also have a Blueroom website that offers many resources for teaching and interacting with other educators using BlueJ around the world.
You can read more about BlueJ here at – BlueJ Free IDE
Looking for a lightweight IDE for java programming? DrJava is a good choice, developed and maintained by the JavaPLT team at Rice University, Houston, Texas.
DrJava does not compete with the heavyweight Enterprise-grade IDEs like Eclipse, NetBeans or IntelliJ and is mainly meant for students and beginner developers for learning and creating school/research projects.
You can quickly set up and start writing Java code within a few minutes, just download the jar file and you are good to go. Windows and Mac OSX apps are available as well.
DrJava is built using Spring tooling and has a consistent and clutter-free interface across Windows, Linux, and Mac. Some of the basic features include go-to line, find/replace, auto-indent, syntax coloring, auto-completion, code commenting, debugger, etc. It also includes the JUnit test facility to run tests.
Is DrJava Best IDE to learn Java?
I call it a tier-2 segment and Drjava is not alone here, we also have BlueJ, JGrasp, and Greenfoot for the beginners, teachers, students, and learning space, in general. It really depends on what you happen to like after trying out a few, all of these are free to use.
Read more about DrJava here at – DrJava IDE for Learning.
MyEclipse is the baby of a company named Genuitec, based out of Texas, USA. It is a commercial Java IDE built on top of MyEclipse and supports enterprise JEE development, but is best suited for full-stack development.
Frontend development can be taken care of by using Bootstrap, Material Design theme, Angular, Vue.Js, TypeScript, and other frontend technologies support within MyEclipse.
For the backend and business logic, you can use Spring, Maven Java Enterprise Edition, Websphere, Tomcat, and much more.
MyEclipse also supports CodeMix, an extension that brings in all the good things of VS Code to MyEclipse and makes Java programming fun, fast and efficient.
MyEclipse offers many different versions to choose from including Standard, Professional, Blue, Spring, Bling, and Secure. Standard and Professional are the two main Editions of MyEclipse.
You can try out the free trial for 30 days, but none of the versions come for free and you have to subscribe to one of these editions to continue using.
Some of the features included in Professional Edition which are not part of the standard version are, Android & iOS support, mobile web simulator, Image Editor, UML modeling, Rest inspect, Reporting, and jQuery Mobile Templates.
Apart from the basic code editing features, other key features of MyEclipse include –
- Maven Support – Inbuilt project structures and launch commands, no need to leave the IDE.
- Database tools including POJOs, JPA, Spring, and Hibernate. Embedded Derby database and connectors to most of the databases available out there in the wild.
- Spring Support – Spring Scaffolding, Spring Annotations, Visual Spring Editors, and wizards
- CodeLive for faster development and chrome dev tools mobile simulator support.
- Collaboration using code sharing with a team on Slack.
- Visual query builder for MySql
- Image Editor, JQuey Mobile templates, and Ajax tools
You can read more about MyEclipse Java IDE here at – MyEclipse IDE for Java
8. XCode – Another Java IDE for MAC Users
Xcode is the IDE for developing an application on Man and mainly for the Apple ecosystem. However, Mac users like to work with Xcode for anything programming including Java.
Apple has extended support to ensure java programming becomes easy and productive with Xcode. I would recommend Xcode for small-scale projects or as a Java learning tool for beginners.
Check out more about Xcode here – Xcode for Java
JDeveloper is another open-source Java IDE that comes from the development house of Oracle.
It supports the full development life cycle including modeling, coding, debugging, monitoring, and deployment. JDeveloper is the IDE to go for if you are developing in the world of Oracle’s technologies.
The best part of JDeveloper is it’s being visual and declarative that aids development greatly and makes working with Oracle ADF an absolute breeze. ADF is the framework built on top of the Java Platform enterprise edition, for speed, agility, and efficient development.
You can read more about JDeveloper here at – JDeveloper IDE.
10. Android Studio – For Everything Android
Like Xcode is toppled ecosystem, Android Studio is to Android apps development for any platform running Android.
It is the official development environment for anything Android and was released back in 2014 by Google to replace the Eclipse Android Development Tools (ADT).
Some of the key features of Android Studio include –
- Visual Layout Editor, APK analyzer, FAST emulator, real-time profilers, and flexible build system.
- Feature-rich emulator to simulate apps for android wear, phones, tablets, and Android TV devices.
- Intelligent Code Editor that offers the best of both Java as well as Android SDK
- Feature-rich build system – Gradle
- Integration with Subversion and GitHub for version control
- Reusable code and app templates built by Google folks and others
- Support for Testing frameworks and tools like JUnit 4 and Firebase Test Lab
- Firebase Messaging and Google Endpoints for cloud integration
- Intuitive editor for resource translations
- Google material design icon sets
- GPU profiler for graphics debugging
In summary, Android studio brings in the best of a great Java IDE IntelliJ IDEA and breaths Android. Every feature of the IDE is custom-tailored for speed development for the Android platform and those make it the best Java IDE for Android App development.
You can read more about Android Studio here at – Official IDE for Android.
11. JGrasp – Simple Java IDE
JGrasp is a free IDE for Java, best suited for auto-generation of visualizations from the code as Control Structure Diagrams (CSDs). It is very small and lightweight software, written in Java itself, and can be run on all operating systems with a JVM (Java Virtual Machine)
JGrasp is quite popular among high schools, community colleges as well as universities. At the time of writing this article, JGrasp is used by more than 380 institutions for teaching and training purposes.
You can read more about JGrasp here at – jgrasp.org.
Java is one of the most popular programming languages with millions of developers using it for web, mobile, enterprise, embedded, and desktop apps development for decades.
There are many Java IDEs and editors available since the beginning of time, however, the overall programming paradigm is changing rapidly in recent years and so are the Java IDEs.
Even though most of the top IDEs covered in this article come in different flavors but the common goal is to give solid tools in the hands of developers for developing java applications with ease, productivity, and efficiency.
Sit back straight, list down all of your key requirements, and pick the IDE or editor that best fits your project or team’s needs. Let us know your experience with Java development and the best Java IDE of your choice via comments, cheers!!
You might want to check out the below-