JakartaEEとは
概要
Jakarta EE(ジャカルタ・イーイー)とは、Javaを使ってサーバーサイドや大規模システムを開発するための標準仕様群(APIやランタイム環境のセット)のことで、以前は「Java EE(Java Platform, Enterprise Edition)」と呼ばれていました。
2017年にオラクル社からEclipse Foundationへ開発が移管された際、商標の問題から「Jakarta EE」へと名称が変更されました。Webアプリケーション開発に必要なデータベース連携(JPA)、Web API(JAX-RS)、画面表示(JSF)、依存性注入(CDI)など、高度な機能を提供します。
Jakarta EEの主な特徴
エンタープライズ向け標準: 企業システム開発に必要な、安定性、移植性、セキュリティなどの機能が標準化されています。
旧Java EEの後継: Java EE 8までの仕様を引き継ぎ、よりオープンなコミュニティ主導で開発が進められています。
オープンソース: Eclipse Foundationが管理するオープンソースプロジェクトであり、ベンダー中立な仕様を提供しています。
豊富な機能: データベースアクセス、Webサービス、メッセージング、バッチ処理など、多様な機能が含まれます。
事前準備
Eclipse2025にプラグイン「Eclipse Enterprise Java and Web Developer Tools」を導入
Eclipse Enterprise Java and Web Developer Toolsとは?
Javaのエンタープライズ(企業向け)アプリケーションやWebアプリケーション開発に特化した、Eclipse IDE(統合開発環境)の機能拡張版(パッケージ)です。
Java EE(Jakarta EE)、Web開発に必要なサーバー連携(Tomcat, JBossなど)、Springフレームワーク、HTML/CSS/JavaScript開発などの機能が最初から含まれており、これらを効率的に行うためのツール群が統合されています。
主な特徴と内容
Java EE (Jakarta EE) 開発: Servlet, JSP, EJB, JPAなどのJava EE技術を使った開発をサポートします。
Web開発ツール: HTML, CSS, JavaScript, XMLなどのWeb関連ファイルの編集やデバッグを支援します。
サーバー連携: Apache Tomcatなどのアプリケーションサーバーとの連携機能が組み込まれています。
Spring Framework: Spring Bootアプリ開発など、Spring開発に必要な機能も統合されています。
豊富なプラグイン: 豊富なプラグイン(拡張機能)により、さらに多くの機能を追加・拡張できます。
JakarataEEをEclipse2025で扱うためにはプラグイン「Eclipse Enterprise Java and Web Developer Tools」をインストールします。
【手順】
[ヘルプ]⇒[Eclipseマーケットプレース]を選択します。

検索窓に「Eclipse Enterprise Java and Web Developer Tools」と入力すると表示されるので、右端の[インストール]ボタンを選択します。

すると、下記のフィーチャー一覧が表示されます。特に導入したいものが無ければそのままで、[確認]ボタンをクリックします。

「インストールを続行しますか?」というメッセージ画面が表示されるので、[はい]を選択します。

「これらの著作者を信頼しますか?」欄で[すべて選択]ボタンを押して、全選択します。
その後、[選択項目を信頼]ボタンをクリックします。

JakartaEEプロジェクトの作成
手順①:JakartaEE`公式サイトに移動する
下記のJakartaEE公式サイトに移動します。
[プロジェクト設定の選択]
JakarataEE公式サイトで下記のようにプロジェクトの設定を行っていきます。
●Jakarta EE Version: 使用したいJakarta EEのバージョンを選択します (例: 10)。
●Profile: アプリケーションの種類を選択します (例: Web Profile)。
●Group: MavenのgroupIdを入力します (例: com.example)。
●Artifact: MavenのartifactIdを入力します (例: jakartaee-app)。
●その他のオプション(Runtimeなど)も適宜選択します。
「Generate Project」をクリックして、プロジェクトのZIPファイルをダウンロードします。
ZIPファイルを解凍(展開)します。

[Eclipseを起動し、プロジェクトをインポート]
●EclipseのメニューからFile > Import...を選択します。
●「Import」ウィンドウでMaven > Existing Maven Projectsを選択し、Nextをクリックします。
●Browse...をクリックして、解凍したプロジェクトフォルダを選択します。pom.xmlファイルが認識されることを確認します。
●Finishをクリックして、プロジェクトをワークスペースにインポートします。
[pom.xmlを更新]
jakarta.jakartaee-web-apiを追加します。
<dependencies>セクションに、使用するJakarta EEのバージョンに応じた依存関係を追加します。
例えば、Jakarta EE Webプロファイル10の場合、以下のような依存関係を追加します。
これで、Jakarta EEの依存関係が追加されました。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>jakartaee-app</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>jakartaee-app</name>
<description>
This is a very simple Jakarta EE application generated by the official Eclipse Starter.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.report.sourceEncoding>UTF-8</project.report.sourceEncoding>
<maven.compiler.release>21</maven.compiler.release>
<jakartaee-api.version>10.0.0</jakartaee-api.version>
<compiler-plugin.version>3.13.0</compiler-plugin.version>
<war-plugin.version>3.4.0</war-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>${jakartaee-api.version}</version>
<scope>provided</scope>
</dependency>
<!--追加-->
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>10.0.0</version> <!-- 使用するバージョンに合わせる -->
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>jakartaee-app</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${war-plugin.version}</version>
</plugin>
</plugins>
</build>
</project>
プロジェクトの更新
プロジェクトを右クリックし、Maven > Update Project...を選択します
手順③:サーバ起動
プロジェクトの上で右クリック⇒[実行]⇒[サーバで実行]を選択します。

ラジオボタン[手動で新規サーバを定義]を選択します。
[サーバのタイプを選択]欄から[Apache]⇒[Tomcatv11のサーバ]を選択して、[次へ]ボタンをクリックします。
※Tomcatサーバは好きなものを選んでいただいて大丈夫です。

作成したアプリが表示されていることを確認して、[完了]ボタンをクリックします。

ワークスペースのブレークポイントメッセージが表示されるので、[はい]を選択します。

手順④:アプリの実行
プロジェクトの上で右クリック⇒[実行]⇒[サーバで実行]を選択します。

テンプレートエンジンJSPファイルを新規作成
次は、ページを作成してみましょう。
テンプレートエンジンJSPをJakartaEEは標準採用しているのでこちらを使います。
Jakarta EEにおけるWEB-INF/ディレクトリは、Webアプリケーションの秘密の場所で、JSPファイルを直接URLからアクセスさせずに、サーブレット(Jakarta Servlet)経由でフォワード(getRequestDispatcher().forward())して利用する際に使われます。
このフォルダ内(例: WEB-INF/views/)にJSPを置くことで、セキュリティを確保しつつ、動的なコンテンツ生成や画面表示の役割分担(MVCパターン)を実現できます。
WEB-INF/ディレクトリの役割
セキュリティ: WEB-INF/配下のJSPファイルは、直接ブラウザからアクセス(例: http://localhost/app/WEB-INF/views/mypage.jsp)できません。
動的コンテンツ: サーブレットがリクエストを受け取り、ビジネスロジックを実行後、request.getRequestDispatcher("/WEB-INF/views/result.jsp").forward(request, response); のようにフォワードすることで、JSPがHTMLを生成し、クライアントに返されます。
構成管理: web.xml(デプロイメントディスクリプタ)やタグライブラリの記述ファイル(.tld)などもWEB-INF/に配置されます。
さっそく、下記のディレクトリにServletクラスを新規作成しましょう。

package com.example.jakarta.hello;
import java.io.IOException;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
// データをリクエストにセット (JSPで利用可能)
request.setAttribute("message", "Hello from Servlet!");
// WEB-INF/views/welcome.jsp にフォワード
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/welcome.jsp");
dispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
続いて、下記のディレクトリにJSPファイルを新規作成しましょう。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome サーブレット</title>
</head>
<body>
<h1>Welcome to Jakarta EE!</h1>
<p>Message: ${message}</p> <!-- サーブレットから渡されたメッセージ -->
</body>
</html>
サイト
Qiita
JakarataEEについて
Java EE完全ガイド2024:仕組みから実装まで解説する12の重要ポイント
【保存版】Jackson入門 2024:Java開発者のための実践的JSON処理ガイド 10のベストプラクティス
Javaフレームワーク(Jakarta EE、Springなど)まとめ【2025年8月時点】
【spring-mvc + Thymeleaf】 eclipse で spring プロジェクトを作成する
Strutsについて
【2024年保存版】Apache Strutsの完全ガイド:導入から実践まで13のステップ
Atmoc Designについて
【AtomicDesign】学習メモ
React19はforwardRef絡みの長ったらしい型記述を無くしてくれる
TypeScriptの型安全性を極めるライブラリ6選
Atomic Design ベースの Vue コンポーネント設計
RUNTEQ
【超入門】現場で通用する「プロが教えるテーブル設計!」
Dexallテックブログ
【2024年保存版】Apache Strutsの完全ガイド:導入から実践まで13のステップ
【2024年最新】Spring Framework MVCマスター入門:7つの必須知識と実践テクニック




