The IDE for Java Enterprise developers

In IntelliJ IDEA, you can develop Java Enterprise applications based on Jakarta EE (Java EE) specifications — CDI, JPA, JSF, Batch, JAX-RS, WebSocket, Servlets, and JSP — and MicroProfile. The IDE provides advanced coding assistance, navigation, and a rich set of built-in developer tools for your Java Enterprise project.

Get started with Jakarta EE development

Jump into your Java Enterprise project right away!

Java Enterprise project creation

Java Enterprise project creation Ultimate

Create Jakarta EE (Java EE) based projects in a dedicated wizard. All the core information is conveniently grouped on the first screen, while the second screen features framework-specific settings — the project creation process is more straightforward.

Automatic migration from Java EE to Jakarta EE

Automatic migration from Java EE to Jakarta EE Ultimate

The Migrate... refactoring helps you quickly and painlessly migrate a project or module from Java EE to Jakarta EE. After you initiate it, the Refactoring Preview tab shows all the discovered usages of Java EE imports. You can then review them and finalize the process.

Contexts and Dependency Injection (CDI)

Java and Kotlin support for Jakarta EE CDI

Java and Kotlin support for Jakarta EE CDI Ultimate

IntelliJ IDEA has tons of useful CDI inspections for both Java and Kotlin files in your Jakarta EE or Java EE projects. The IDE reports injection points in bean classes that have ambiguous dependencies and incorrect injection points for fields, methods, and parameters annotated with @Inject that violate the CDI specification. It also alerts you to disposer methods without the corresponding producer method, and much more.

Quick fix to inject bean dependencies

Quick fix to inject bean dependencies Ultimate

You can easily inject Jakarta EE beans right from where you need them. To do this, either use the .inject postfix template or apply a quick-fix by using the Alt+Enter shortcut on the unresolved variable and selecting the Add dependency… option. This feature also supports CamelHumps matching, so you can just type “owRepo” to autowire a bean with the OwnerRepository class.

Injected beans navigation

Injected beans navigation Ultimate

The IDE allows you to quickly navigate the Java or Kotlin code in your Jakarta EE project via CDI gutter icons. You can go to injection points, injection candidates, or bean factories.

Events navigation

Events navigation Ultimate

IntelliJ IDEA supports asynchronous CDI events, and allows you to easily navigate between where an event was fired and where it was received.

Persistence frameworks

JDBC, JPA, Hibernate, R2DBC

JDBC, JPA, Hibernate, R2DBC Ultimate

The IDE integrates with the most commonly used persistence frameworks, such as JDBC, Hibernate, and R2DBC. Right out of the box, you get framework-specific coding assistance, as well as convenient gutter icons that provide a list of the most useful actions for entities and their attributes. The IDE validates the correctness of your JPQL requests.

Persistence tool window

Persistence tool window Ultimate

The Persistence tool window is for viewing and managing various JPA and Hibernate items. In this tool window, you can create configuration files and persistent classes, navigate to related source code in the editor, open diagrams and consoles, and more.

JPA Console

JPA Console Ultimate

The IDE has a JPA console for writing and running JPQL queries and analyzing the query results in your Jakarta EE projects. This console provides useful highlighting and completion for JPQL keywords, as well as object and property names. It even allows you to test your JPQL requests and receive answers from databases without running your application.

JPA ER diagram

JPA ER diagram Ultimate

IntelliJ IDEA has an entity-relationship (ER) diagram that represents relationships between entities to give you a better understanding of your project.

JAX-RS

JAX-RS REST Client HTTP Requests Generation

JAX-RS REST Client HTTP Requests Generation Ultimate

IntelliJ IDEA Ultimate can automatically generate JAX-RS requests and open them in the integrated editor-based REST Client so you can easily create and test HTTP requests. Furthermore, you can generate HTTP requests for any URL by simply invoking the Intention Actions context menu via Alt+Enter and selecting the corresponding option.

URL mappings in Search Everywhere

URL mappings in Search Everywhere Ultimate

The IDE recognizes URLs as symbols and allows you to find URL mappings via Search Everywhere. Press Shift twice to open the Search Everywhere window and type "/" along with part of the URL mapping you want to search for.

Endpoints tool window

Endpoints tool window Ultimate

Thanks to the Endpoints tool window, you can view both client and server APIs for HTTP and WebSocket protocols. It supports comprehensive searches with filters, multiple search parameters, and completion. You can read documentation for each endpoint in a new tab, and if endpoints have associated URLs, you can see an Open API representation of them and access an ad-hoc HTTP client.

Application servers

Integration with application servers

Integration with application servers Ultimate

The IDE provides integration with major application servers, including Tomcat, JBoss, WebSphere, WebLogic, GlassFish, and more. Right from your IDE, you can start and stop local servers, connect to running remote servers, deploy your artifacts to those servers, and even debug your applications on them.

Jakarta EE tutorials

Build modern web applications with support for microservice architectures, cloud systems, reactive processing, and serverless workloads in IntelliJ IDEA with ease.