Java IDEs: The Definitive Guide (and Top Picks)
Rounding up the best IDEs for Java programming.
Itâs statistic time! Did you know that the average developer spends 76% of their time writing, improving or testing code?1
Most of your time is spent writing, improving or testing code
Source: Data from TideLift/The New Stack
76%!! Crikey.
So if youâre going to spend three-quarters of your working week (thatâs 30 hours for most of us) writing or debugging code, you should try to make that time as productive and enjoyable as possible⦠right?
This is why most Java developers use an Integrated Development Environment, or IDE, to write code.
An IDE gives you insights about your code, automates those annoying repetitive tasks⦠and can sometimes save your ass.
But which IDE should you use for Java?
In this article, weâll see:
-
when you should use an IDE to write Java
-
the top Java IDEs in use today
-
give you an opinionated view on the best Java IDE to use!
Letâs get into it.
Top picks
Here are our favourite IDEs:
Java IDE Basics
In this first section, letâs take a look at IDEs in general â what they are, and whether you need one.
What exactly is an IDE?
An IDE, or Integrated Development Environment, is a program which helps you write software. An IDE helps you organise your software projects, write code, and then test and debug it. Popular IDEs include Eclipse, IntelliJ and Microsoft Visual Studio.
An IDE usually includes features which help you to:
-
Write code
-
Compile or package code
-
Debug your application
Can an IDE do other things?
Sure! And many of them do.
Some IDEs add features for running tests, writing documentation, and even creating diagrams.
But coding, compiling and debugging are three core features of any decent IDE.
Do you need an IDE to write Java code?
No, you donât need to write Java code in an IDE. You can use any text editor you like, and then compile the code with javac.
You could be writing code for the Mars rover, nuclear power stations, or even financial trading algorithms, with trusty Windows Notepad, and javac (the Java compiler command).
Iâve even met Java developers who write code in Vim (the Linux text editor), and then run it all in the Terminal.
And they still write excellent code.
But, there are a couple of good pieces of advice worth remembering:
If youâre just starting to learn Java, use a text editor first
A lot of people say that when youâre a Java beginner, itâs better for your learning to write code using a plain text editor.
But why? If an IDE can do all of the work for you, why start out creating programs by hand?
Coding by hand helps you see the basics of the language, and it will give you way more confidence in future, if you have to troubleshoot a problem. If you are completely reliant on an IDE, and you have no knowledge of what the IDE is doing for you, you will find it harder in future to solve problems.
An IDE is useful once youâre past the beginner stage
But once youâve moved on from the beginner stage, you will probably benefit from using some kind of graphical desktop program that helps you to write code.
An IDE helps you organise your projects, run tests, compile the code, format it correctly, and much more.
Now youâve decided you want a Java IDE. Thatâs why youâre reading this article! (Hi!)
So how do you pick an IDE? What are the features to look for in a good Java IDE?
Weâll look at that next.
Choosing an IDE
If you have the freedom to choose an IDE, then youâre probably wondering what you should look for.
What makes a great Java IDE
A developerâs IDE can be a very personal choice. (I said earlier that there are many developers who prefer to write code using Vim, the Linux text editor!).
But hereâs what I expect any IDE to be:
-
FAST. It has to be fast. Faster than Speedy Gonzales. Every second you spend waiting for your IDE to process a file, is a second that you might lose concentration, or train of thought.
-
STABLE. It has to be able to handle multiple editor windows, terminals and build processes simultaneously. And it must handle all of that, without freezing or crashing.
-
INTELLIGENT. A good Java IDE knows how to take care of boring, repetitive tasks, but it also knows to get out of your way when you just need to write code. You donât want to battle with wizards and dialog boxes all the time, just give us some sensible default options.
-
KNOWLEDGEABLE. The IDE should know what good code looks like, and help me avoid code smells â those pieces of code which arenât great. It should also help me to optimise, by suggesting more succinct alternatives for what Iâm writing.
-
MODERN. Java has traditionally been a slowly-evolving language, but the releases have picked up the pace in recent years, and now we see a new Long-Term Support release of Java every 3 years. Any Java IDE needs to be able to handle the modern features and frameworks of Java 11, 14, 18 and beyond.
-
ERGONOMIC. This is a fancy way of saying that the IDE should feel great to use.
A great IDE helps you automate boring tasks, but also gets out of the way when you need to concentrate and write code.
Does it matter which IDE you use?
If the code is the same, then does it really matter which IDE you use?
Actually, yes!
Researchers at Microsoft and the University of Victoria BC conducted a survey of engineers.
They found that engineers ranked poor engineering tools as one of their biggest challenges they face in their job.
Itâs a bigger challenge even than things like a bad manager or experiencing too many interruptions.

So your choice of engineering tool â like an IDE â can make a big difference your job satisfaction and productivity.
What if I canât choose my own IDE?
If youâre learning Java in your spare time, then youâll be free to choose your preferred IDE.
But if youâre starting a job as a Java developer, you should have the freedom to choose your own IDE too.
If they donât allow you to choose your own IDE, I would challenge it!
Youâre going to be spending up to 8 HOURS per day with this application. It needs to help you do great work.
Desktop Java IDEs
Now letâs look at the top desktop IDEs â for running on your laptop, or desktop PC.
The most popular Java IDEs
Some of the top Java IDEs in use today are:
-
IntelliJ IDEA (including Android Studio)
-
Eclipse
-
NetBeans
-
Oracle JDeveloper
-
Visual Studio Code (with the Java Extension Pack installed)

Hereâs my review of these 5 Java IDEs:
| IDE | My review | My rating |
|---|---|---|
| JDeveloper | The âJâ is short for âjokeâ. Crashes constantly, be prepared to lose all your work and leave the office every day, empty and unfulfilled. Only use if itâs forced upon you at gun-point, or via an Oracle license. | â |
| Eclipse | Crashes frequently. Easy to get lost with Perspectives. Slow, just terribly slow. | â â |
| NetBeans | Acceptable, but hasnât kept up the pace with modern Java developersâ needs. | â â â |
| Visual Studio Code | A solid âgoodâ. Does most of the things you will need. But itâs still just a text editor at heart, with added bells and whistles. | â â â â |
| IntelliJ IDEA | A fast and productive environment to work in. Full insights into your code. First-class debugging, testing, decompiling. | â â â â â |
IntelliJ IDEA (Best desktop Java IDE)
| Some text | The answer |
| Licence | Open source |
| Available for | Windows, Mac, Linux |
After years of trying out each of the different top Java IDEs, Iâve settled on my recommended choice.
The best desktop Java IDE in 2022 isâ¦. IntelliJ IDEA. ðââï¸
Iâve spent the last 10+ years developing with Java. Iâve tried all the big five â NetBeans, Eclipse, Visual Studio Code, JDeveloper and IntelliJ â and I have not found another desktop IDE that beats IntelliJ for productivity and speed.
Best Desktop IDE for Java Developers: IntelliJ IDEA Community Edition
- FREE and Open Source - the Community Edition has all you need
- Available for Windows, Mac and Linux
- Fast.... like light-speed fast
- First class support for Maven
- Awesome built-in code inspection, testing, debugging and decompiling tools
- If you're doing Android development, then check out Android Studio -- it's based on the same technology
Why itâs a great choice
Here are some of the features in IntelliJ that make me think itâs the best Java IDE:
Fast global search
Using fuzzy search you can quickly go to any piece of code in your project.
This means less time fiddling around in the project tree, trying to remember where that class went.
You can also use this feature to instantly decompile your dependencies and have a look at the source code.
Just press Left Shift twice to activate global search:
Search in IntelliJ is great
Solid plugin ecosystem
IntelliJ is extensible with plugins. I use the Apache Camel plugin all the time, for example.
But my favourite plugin is the Nyancat plugin. Get a flying rainbow cat in your IDE, While-U-Wait:
Flying rainbow caaaaaaat
Amazing unit test runner
Once you start writing unit tests for your Java applications, and start running them in IntelliJ, you wonât want to run them any other way.
They run quickly, and you can also debug your tests very easily.
Running unit tests in IntelliJ IDEA
Which brings me on toâ¦
Great debugger and decompiler
Once you start creating complex programs, or using external frameworks, youâre going to need a solid debugger and decompiler.
The decompiler allows you to see the source code of the classes youâre using, so you can figure out whatâs really going on, in any library youâre using.
Instantly view decompiled source code in debugging
In the debugger, you can inspect any object, step forward and back through code lines, and more:
Inspecting objects while debugging
Both of these features are absolutely amazing in IntelliJ, and I would be far less productive if I didnât have them.
First-class support for Maven
IntelliJâs support for Maven is great, and specifically the Maven tool window is a blessing for me.
It helps me to visualise all of my dependencies, goals (the âexecutionsâ that you run in Maven) and more.
Watch my short video on how to understand a Maven project with IntelliJ IDEA:
Itâs stable
In all the years Iâve used it, Iâve had very few crashes. When I use Eclipse, I tend to get poor performance and crashes (sorry Eclipse!)
Automatic code formatting, with sensible defaults
One of the annoying things about other IDEs is that they donât take a strong stand on code formatting.
Well-formatted code makes it so much easier to share and collaborate with other members of your team!
If code isnât formatted correctly, you can literally waste time when youâre learning someone elseâs codebase. You have to figure out their weird formatting approach, or why some files have been indented with Spaces and some have been indented with Tabs.
(By the way: you make more money if you indent with spaces.)
IntelliJ formats everything as you type, and will even format code you paste from the clipboard.
This is crucial when youâre working as a team. You donât want to be that developer, whose code everyone else struggles to read because itâs not formatted correctly and looks weird.
Do you need the (paid) IntelliJ Ultimate Edition?
I donât think you will even need the Ultimate (premium) edition of IntelliJ.
Iâve used the Community (free) edition for 5 years. Iâve never paid for the Ultimate Edition, and Iâve written and debugged code for various platforms like Spring, JBoss, OSGi and more.
The verdict on IntelliJ
I donât even own a paid licence for IntelliJ IDEA; I use the Community Edition. But I think it is truly the best IDE for professional Java developers.
IntelliJ has helped me become massively more productive as a Java developer. Not only can I write code quicker, but my debugging and problem-solving (which is how I spend a lot of my time) is made much easier too.
The reasons I recommend IntelliJ is because of its speed, stability and awesome testing and debugging features. But primarily because itâs fast and stable. (Did I say itâs stable?)
If youâve graduated from beginner Java, and youâre looking for an IDE which will support you in writing great Java programs, then you should definitely think about IntelliJ.
Visual Studio Code (Best Java code editor)
If you donât want a full-blown IDE, but you want to be able to write Java code, then there is a decent alternative to IntelliJ IDEA, which comes in second place overall:
Itâs Visual Studio Code with the Java Extension Pack.
Best Java Code Editor: Visual Studio Code (with Java Extension Pack)
- FREE
- FAST
- Available for Windows, Mac and Linux
- Install the Java Extension Pack to get support for Java linting & refactoring, Maven and debugging support
- Not as feature-rich as IntelliJ, but good for day-to-day coding
I call VS Code a code editor with Java support features, rather than a full-blown Java IDE. This is because, first and foremost, it is a text editor which can be expanded with extensions.
VS Code is greatâ¦. butâ¦. it just doesnât understand Java as well as IntelliJ. What I mean by that is, it doesnât have the same level of deep understanding of your code, and the whole Java ecosystem.
You can achieve a lot of the same features as IntelliJ by installing plugins, but my view is that these features should be built-in to the IDE, and not left to individual plugin contributors to write.
Iâm sure at some point, VS Code will have Java support to rival IntelliJ IDEA. But, until then, Iâm sticking with IntelliJ IDEA as my Java IDE recommendation, and VS Code as a solid second place.
What if you canât install an IDE? Then try an online one. Letâs dive in.
Java IDEs for Beginners
So which should you start with if youâre a beginner?
Notepad
No, seriously! Start with Notepad first.
And then consider moving on toâ¦
BlueJ
BlueJ, named after the bird (the Bluejay, in case you were wondering).
Online Java IDEs
If you want to develop Java programs, but you canât install a Java Development Kit, you can still code using an online Java IDE.
Online Java IDEs run in your web browser. They arenât all as feature-rich as their desktop counterparts, but theyâre certainly catching up!
How does it work? Thanks to a little browser magic:
Your web browser doesnât natively run Java code, so usually your code gets passed to a back-end server, which runs it and returns the result back to you.
Hereâs some of the best options.
Gitpod
Pull and run code directly from Git repositories, with 50 hours free per month.
The Gitpod team have built something pretty impressive.
Itâs a browser-based IDE which uses the familiar VS Code UI â so you can even install Visual Studio Code extensions if you want them.
Working on a Java application inside Gitpod ⦠hmm that UI looks familiar!
Itâs pretty good. I pointed it at one of my GitHub repos, and it opened it within seconds, and it automatically set me up with a Java 11 workspace with Maven. Love it.
It all runs online, and you can even expose your applicationâs web ports. So if your application has a REST API, you can test it directly in your web browser.
On the free plan, you get 50 hours per month â which should be plenty for your weekend coding projects!
Riju
A simple online playground for Java (and dozens of other languages).
Riju is a simple online Java compiler.
It loads super-fast, and is great for writing simple, command-line Java programs.
The Riju online Java compiler is very simple
And, itâs open source.
(Riju isnât exactly a full-blown Java IDE, and you canât pull in dependencies, but for simple programs, it does the job.)
Riju supports lots of other languages too, such as âBrainf***â. So if youâve ever wanted to program in that language, check it out!
The project costs money to run, so if you use it a lot, make sure you chuck a tip to the developer. (See the sponsorship links on the GitHub repo.)
Replit
Write command-line Java programs in your browser, with some limited support for Maven dependencies.
Replit is a rich tool for writing programs in the REPL style.
You edit your code in an editor like this:
Editing a Main class in REPL.it
And then press Run to see it compiled and executed.
Itâs free on the Starter Plan, but theyâd like you to upgrade to a paid plan, which allows private repositories, and access to more storage and resources.
You can have a play with an embedded REPL.it here. I created a Java application with a main class, which starts Apache Camel:
Now get coding!
So, there you have it. My recommended IDE for desktop-based Java development is IntelliJ IDEA.
If you prefer a code editor with additional Java support features, then I recommend Visual Studio Code with the Java Extension Pack.
And finally if you want to do some online Java coding, then try Riju, Replit or Gitpod.
Now youâve seen the recommendations, what are you waiting for?