What is an IDE?

If you're looking to build a Jakarta EE (formerly Java EE) Application, you're going to need a few things to get started. Whether you're building a web application with Java Server Faces (JSF), a web service using REST, an Enterprise Java Beans (EJB) application, or interacting with a database using Java Persistence API (JPA) - you first need Payara Server® or Payara Micro® and an IDE (Integrated Development Environment).

An IDE is where you'll write your code, debug and even deploy or run your application. An IDE typically has a code editor with syntax highlighting. They also usually have tips and autocomplete. A great feature is that it can highlight errors in real time, so you don't have to compile before finding out you left off a semicolon (nor spend ages searching for it)! Most can compile your code for you without having to use javac or mvn from the command line. It also handily comes with a debugger too.

What to Look for in an IDE?

As Payara Server & Payara Micro are designed to run EE (Enterprise Edition) applications, you're probably interested in IDEs which work well with Java EE, or Jakarta EE, as it's now known.

I recommend looking for an IDE with the following:

Syntax highlighting

Debugger

Error Highlighting

Content assist, also known as autocomplete

Ability to see Javadoc when hovering over a method or class

EE support (so the above still work when your working with a Servlet, JSP or Facelet)

Server connectors so you can deploy your code to the server from the click of a button in your IDE

Active IDE project (in software development, new versions, frameworks, and APIs are often released and you need your IDE to be able to support these)

Which EE IDEs are Available?

The list below is by no means a comprehensive list, just some of the more popular ones in my opinion:

NetBeans

Eclipse Note: Pick the EE specific distribution!

Pick the EE specific distribution! IntelliJ IDEA (this requires the 'Ultimate' paid for edition to work with EE projects)

Visual Studio Code (VS Code)

NetBeans

The Apache Software Foundation maintains NetBeans. Donated to them by Oracle when they bought Sun Microsystems. NetBeans is what most of the engineering team use at Payara. We find it works well for our needs.

Eclipse

The Eclipse Foundation, the same organization that has taken over Java EE (as Jakarta EE), also provides the Eclipse IDE. Using Eclipse ensures it'll work with future EE releases.

Note: There's more than 1 distribution of Eclipse IDE, you'll need to get the one that's specifically for EE. Don't get the Java SE distribution.

IntelliJ IDEA

IntelliJ is Jetbrains' IDE. It's important to note here that the free version doesn't support EE, just Java SE (Standard Edition). The paid version, called 'Ultimate' works with EE. Ultimate works out of the box with Payara Server, set up is the same as for Glassfish.

Visual Studio Code

Made by Microsoft, you'd be forgiven for thinking this works only with Windows. It works on Linux and a Mac too. Out of the box it's just a code editor with syntax highlighting. Everything needs adding as extensions. Java Support is one extension. It works well with Git (a content versioning system). It's also a very active project, which means you get frequent new features. We're also working on an extension to make Payara Server work neatly with VS Code.

IDE Server Integration

Payara has plugins for NetBeans and Eclipse which mean you can deploy and debug to Payara Server from within each of these IDEs. Payara Server also works out of the box with IntelliJ, and we're working on an extension for VS Code.

For the Eclipse Plugin see the Eclipse Marketplace . You can also read more in Arjan's post on his Payara Tools Plugin.

For the NetBeans plugin see the NetBeans Plugin portal.

All IDE Plugins developed by Payara are entirely free to use.

Which IDE do you Recommend?

I recommend NetBeans. I find it's great for beginners and pros alike. You don't need to configure it, so you can get up and coding straight away. I find it's very stable and rarely crashes. Also, following our getting started guide will be easier if you download and install NetBeans as the rest of the tutorials will be based on NetBeans.