Eclipse を使用しての Java サーブレット+データベース・プログラム開発(Java 25 / Jakarta EE 対応)

概要

このページでは, Eclipse を使い, Java サーブレットプログラムを作る手順を,見本となるプログラムで説明する. ここでの Java サーブレットプログラムは,JDBC を使って,リレーショナルデータベースを操作する. 実行環境は Java 25(Eclipse Temurin 25 JDK),Jakarta EE 11 相当の Jakarta Servlet 6.1,Apache Tomcat 11 を前提とする.

【補足説明】

下記の 2 つのサーバは別物である. 2 つを同時に動かすことはできない(同じポートを使うため).一方を動かすときは,もう一方を止める.

  1. Eclipse 内部の Tomcat サーバ:

    Eclipse 内部の Tomcat サーバが動き,Java サーブレットの動作テストなどに使う.

  2. 公開 Tomcat サーバ:

    Eclipse とは無関係の Tomcat サーバ(Tomcat インストールディレクトリの bin にある起動スクリプトで起動する Tomcat サーバのこと). 公開 Tomcat サーバが管理するディレクトリも Eclipse とは独立している.

なお,「Eclipse 内部の Tomcat サーバ」を使えるようにするには, Eclipse で「新規サーバの定義」を行う必要がある.これは 1 回行うだけでよい.

目次

関連する外部ページ

サイト内の関連情報

必要となるソフトウェア

関連情報

Java 25(Temurin 25 JDK) のインストール

Eclipse Temurin(Adoptium)のインストールを行い、Javaのプログラムをコンパイル・実行する環境を整える。扱う環境は、Windows搭載パソコンである。現時点(2026年6月)での最新LTS版である Java 25(Temurin 25 JDK)を推奨する。

[Windows での Java 25(Temurin 25 JDK) のインストール手順を見るには、ここをクリック]

Windows での Java 25(Temurin 25 JDK) のインストール

以下のいずれかの方法で Java 25(Temurin 25 JDK)をインストールする。JDKがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

Temurin の Windows インストーラー(.msi)は、ユーザー単位ではなくマシン単位でインストールされる(1台に1つのインストール)。そのため、システム全体(全ユーザー向け)にインストールするには管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。

REM Java 25(Temurin 25 JDK) をインストール(PATH と JAVA_HOME を更新)
winget install --id EclipseAdoptium.Temurin.25.JDK -e --silent --accept-source-agreements --accept-package-agreements --override "ADDLOCAL=FeatureMain,FeatureEnvironment,FeatureJarFileRunWith,FeatureJavaHome INSTALLDIR=\"C:\Program Files\Eclipse Adoptium\jdk-25\" /quiet"

上記の --override 内の指定の意味は次のとおりである。FeatureEnvironment はPATH環境変数の更新、FeatureJavaHomeJAVA_HOME 環境変数の更新、FeatureJarFileRunWith は .jar ファイルとJavaアプリケーションの関連付けである。INSTALLDIR はインストール先フォルダの指定である。

方法 2:インストーラーによるインストール

  1. Adoptium公式サイト(https://adoptium.net/temurin/releases/)にアクセスし、Version として「25 - LTS」、Operating System として「Windows」を選び、.msi 形式のWindows用インストーラーをダウンロードする。
  2. ダウンロードした .msi ファイルを実行し、インストールプログラムを起動する。
  3. ライセンス条項を確認し、同意できる場合はチェックを入れて次へ進む。
  4. 「Installation Scope」画面では「Install for all users of this machine」を選ぶ
  5. 「Custom Setup(カスタムセットアップ)」画面で、インストールする機能を選択する。既定では「Add to PATH(PATH環境変数への追加)」と「Associate .jar」(.jarファイルの関連付け)が有効になっている。さらに、ツリー内でバツ印(×)が付いている「Set JAVA_HOME variable(JAVA_HOME環境変数の更新)」をクリックして有効に変更することを推奨する。これらを有効にしないと、コマンドプロンプトから java コマンドを実行できなかったり、開発ツールがJDKを見つけられなかったりする。
  6. 「次へ (Next)」をクリックし、続いて「インストール (Install)」をクリックしてインストールを開始する。完了後「Finish」で閉じる。

インストールの確認

コマンドプロンプトで以下を実行する。

java --version

バージョン番号(例:openjdk 25.x.x)が表示されればインストール成功である。「'java' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していないか、PATHが反映されていない(コマンドプロンプトを再起動して再度確認する)。

あわせて、コンパイラと JAVA_HOME も確認しておくとよい。

javac --version
echo %JAVA_HOME%

Eclipse のインストール

Eclipse をインストールする。扱う環境は、Windows搭載パソコンである。

[Windows での Eclipse のインストール手順を見るには、ここをクリック]

Windows での Eclipse のインストール

以下のいずれかの方法で Java 25(Temurin 25 JDK)をインストールする。JDKがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして,コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM Temurin 25 JDK をインストール
winget install --id EclipseAdoptium.Temurin.25.JDK -e --accept-source-agreements --accept-package-agreements

winget が使えない場合や,インストール先・パッケージ種類を画面で選びながら導入したい場合は,次の方法を用いる。

方法 2:インストーラーによるインストール

公式サイトからダウンロードしてインストールできる。詳しくはhttps://www.kkaneko.jp/tools/win/eclipse.htmlで説明している。

Eclipse の初期設定、使用方法の基本

詳しくはhttps://www.kkaneko.jp/tools/win/eclipse.htmlで説明している。

あらかじめ決めておく事項と設定内容

前もって,Tomcat インストールディレクトリを調べておくこと.

このサーブレットは,DB 接続に JDBC ドライバを直接使う.依存ライブラリとして必要なのは,使用するデータベースの JDBC ドライバ jar だけである(Spring は使わない).

データベースシステムに関する項目

データベースシステムに関するいくつかの設定内容がある. このページでは設定内容を下記のように書くので, 違う設定にする場合には, この Web ページの説明を読み替えること.

第1章 テスト用データベースの作成

テスト用データベースとして,下記の SQL コマンドで,テーブル commodity を作り,データを入れておくこと.

create table commodity (
    id integer primary key not null,
    name varchar(32) not null,
    price integer );
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );
select * from commodity;

第2章 Eclipse での操作手順

以下,Eclipse を使う. プロジェクトの作成クラスの定義実行という一連の操作を説明する.

Eclipse の使用にあたって,事前に決めておく事項

Java サーブレット・プログラムを動かすために,Eclipse のプロジェクト等を作る. このページでは,Eclipse のプロジェクト名,Java パッケージ名,Java サーブレットのクラス名を次のように記述する (すでに同じ名前のプロジェクトがある場合は,プロジェクト名を変えること).

動的 Web プロジェクトの新規作成

下記の手順で,動的 Web プロジェクトを新規に作成する.

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ (Window)」→「ビューの表示 (Show View)」→「プロジェクト・エクスプローラ (Project Explorer)」 と操作する.

  2. プロジェクトの新規作成の開始

    ファイル」→「新規 (New)」→「プロジェクト (Project)
    または,プロジェクト・エクスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

  3. Web」の展開

    新規プロジェクトのウインドウが開くので, 「Web」を展開する.

  4. 動的 Webプロジェクト (Dynamic Web Project)」の選択

    展開した「Web」の下にある 「動的 Webプロジェクト (Dynamic Web Project)」を選び, 「次へ」をクリック.

  5. プロジェクト名の設定など

    設定用のウインドウが開くので,下記の設定を行う. 設定が終わったら,「次へ」をクリック.

    • 「プロジェクト名 (Project name)」hoge と設定.

      プロジェクト名は,好きな名前でよいが,スペースや全角文字は避けること. ここではプロジェクト名を「hoge」とする.

    • 「プロジェクト・コンテンツ (Project location)」では,ファイルの保存場所を指定する.

      デフォルトの使用 (Use default location)」にチェックを入れたままでよい.

    • 「ターゲット・ランタイム (Target Runtime)」:「Apache Tomcat v11.0」になっていることを確認.

      他のもの(例えば「なし」)になっていたら,「Apache Tomcat v11.0」に変更しておく.

      * 変更のとき,「なし」だけしかなく「Apache Tomcat v11.0」が候補として表示されない場合は, 「Eclipse を使用しての Java サーブレット・プログラムの開発」の Web ページに記載の「新規サーバの定義」を行うこと.

    • 「動的 Web モジュール・バージョン (Dynamic web module version)」:「6.1」(Jakarta Servlet 6.1)を選ぶ.
  6. 次の「Java」設定は,デフォルトのままでよい

    次へ」をクリック.

  7. 次の「Web モジュール」は,デフォルトのままでよい

    終了」をクリック.

  8. もし「関連付けられたパースペクティブを開きますか?」と聞いてきたら,「はい」をクリック

    * このウインドウが開かないことがある.気にしなくてよい.

  9. 作成されたプロジェクトの確認

    プロジェクト・エクスプローラで,いま作成した動的 Web プロジェクト hoge が表示されていることを確認する.

(Apache Derby を使うときのみ) Derby サーバの開始

Apache Derby をネットワーク・サーバとして使うときに限り,Derby サーバを開始する. これは, Derby を使うための追加的な設定である

  1. プロジェクト・エクスプローラで,プロジェクト名 hoge右クリック
  2. 「Apache Derby」→「Derby ネットワーク・サーバの開始」

    ポート 1527 で Derby サーバが起動する.

    「Apache Derby」が候補として現れないときは, Apache Derby インストール の手順に従って,インストールと設定を行う.

    「Derby ネットワーク・サーバの開始」が選べない状態になっているときは, すでに開始済みなので,この手順は不要.

リレーショナルデータベース・ソフトウェアとして,Derby 以外を使う場合や,Derby を組み込みモードで使う場合は,上記は不要である.

WEB-INF/lib への,jar ファイルの配置

使用するリレーショナルデータベースの JDBC ドライバ jar を,Web アプリの WEB-INF/lib に配置する. (JDBC の jar は,使用するリレーショナルデータベース・ソフトウェアごとに異なる).

配置する JDBC の jar ファイルは,次のとおりである.

Eclipse のプロジェクトでは,動的 Web プロジェクトの src/main/webapp/WEB-INF/lib(または WebContent/WEB-INF/lib)に jar を置くと,ビルドパスとデプロイに反映される. プロジェクト・エクスプローラで lib フォルダを右クリックして「インポート」→「一般」→「ファイル・システム」から jar を取り込むか,jar を直接コピーする.

Java パッケージ作成

Eclipse のプロジェクト・エクスプローラを使って, Java パッケージを作成する. Java パッケージ名には hoge.hoge.com のようにドメイン名を逆順にした名前を付ける習慣があることに注意すること. このページでは,作成する Java パッケージ名を hoge.hoge.com と書く (Java パッケージ名を変えるときは読み替えること).

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ」→「ビューの表示」→「プロジェクト・エクスプローラ」 と操作する.

    Java パッケージの作成,クラスの作成などの作業は,プロジェクト・エクスプローラで行う.

  2. Java パッケージを新規作成すべきプロジェクトの選択

    Java パッケージを新規作成したいプロジェクト名 hoge の下の「Java リソース; src/main/java」を右クリックして, 「新規」→「パッケージ」と操作する.

  3. Java パッケージ名の設定

    「Java パッケージ (Java package)」名前として,Java パッケージ名 hoge.hoge.com を記入する.

    その後,「終了」をクリック.

  4. Java パッケージの確認

    プロジェクト・エクスプローラで, Java パッケージ hoge.hoge.com が増えていることを確認する.

第3章 サーブレットの作成

  1. 新規サーブレットの作成の開始

    プロジェクト・エクスプローラで, サーブレットを作成したい Java パッケージ名 hoge.hoge.com右クリック

  2. 新規 (New)」→「その他 (Other)」と操作する.
  3. サーブレットの選択

    サーブレットを作成したいので, 「Web」→「サーブレット (Servlet)」と操作し, 「次へ」をクリックする.

  4. サーブレットのクラス名等の指定

    新規に作成するサーブレットについて,Java パッケージ名,クラス名等を入力できるウインドウが開くので,設定を行う.

    1. 「Java パッケージ (Java package)」: Java パッケージ名 「hoge.hoge.com」を設定.

      *hoge.hoge.com」になっていなければ修正すること.

    2. 「クラス名 (Class name)」: HelloWorld
  5. 次はデフォルトのままでよい

    次へ」をクリックする.

  6. 次はデフォルトのままでよい

    終了」をクリックする.

  7. 作成されたクラスの確認

    プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.com を展開すると, クラスファイル HelloWorld.java が現れる.確認しておく.

クラス定義と実行

  1. 定義したいクラスのファイルを開く

    HelloWorld クラスを定義したいので, プロジェクト・エクスプローラの クラスファイル一覧の中から 「HelloWorld.java」をダブルクリックする. すると,エディタが開く.

    このように,Eclipse のプロジェクト・エクスプローラで定義したいクラスの「クラス名.java」ダブルクリックすると,エディタが開く.

    * なお,別のクラスを追加したいときは, Java パッケージ名を右クリックして「新規」→「クラス」と操作する.

  2. エディタでクラス HelloWorld を定義する

    下記のクラス定義をカットアンドペーストすること(テスト用に作ったクラス定義である). サーブレット API は Jakarta EE の jakarta.servlet パッケージを使う(Tomcat 10 以降はこの名前空間である). JDBC ドライバは JDBC 4.0 以降で自動登録されるため,Class.forName による明示的なロードは不要である. (Java パッケージ名を「hoge.hoge.com」と書いているので,Java パッケージ名を別の名前にしている場合には読み替えること).

    package hoge.hoge.com;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.text.DecimalFormat;
    import java.util.Properties;
    
    import jakarta.servlet.ServletException;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class HelloWorld
     */
    public class HelloWorld extends HttpServlet {
    
        // 下記の変数を正しく設定する
        // DBURL, USER, PASS
    
        // PostgreSQL 用デフォルト
        // JDBC の jar (postgresql-42.7.x.jar) を WEB-INF/lib に置いておく
        private static final String DBNAME = "testdb";
        private static final String USER = "testuser";
        private static final String PASS = "hoge$#34hoge5";
        private static final String DBURL = "jdbc:postgresql://localhost/" + DBNAME;
    
        // MySQL 用デフォルト
        // JDBC の jar (mysql-connector-j-9.x.x.jar) を WEB-INF/lib に置いておく
        // private static final String DBNAME = "testdb";
        // private static final String USER = "testuser";
        // private static final String PASS = "hoge$#34hoge5";
        // private static final String DBURL = "jdbc:mysql://localhost/" + DBNAME;
    
        // Derby 用デフォルト(組み込みモード)
        // JDBC の jar (derby.jar, derbyshared.jar) を WEB-INF/lib に置いておく
        // private static final String DBNAME = "dbdir;create=true";
        // private static final String USER = "";
        // private static final String PASS = "";
        // private static final String DBURL = "jdbc:derby:" + DBNAME;
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println("");
            out.println("

    "); out.println("Database"); try (Connection conn = connect(USER, PASS); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from commodity")) { conn.setReadOnly(true); DecimalFormat dformat = new DecimalFormat("#,###円"); while (rs.next()) { int t = rs.getInt("id"); String n = rs.getString("name"); int p = rs.getInt("price"); out.println("

    " + t + " " + n + " " + dformat.format(p)); } } catch (java.sql.SQLException e) { throw new ServletException(e); } out.println(""); } // database open private static Connection connect(String user, String pass) throws java.sql.SQLException { if (user.isEmpty() && pass.isEmpty()) { return DriverManager.getConnection(DBURL); } Properties prop = new Properties(); prop.put("user", user); prop.put("password", pass); return DriverManager.getConnection(DBURL, prop); } }

  3. ソースを保存

    「ファイル」→「保管」または CTRL+S で保存される. 保存時にコンパイルされる.

    コンパイル時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する.

  4. 下記の「Java サーブレット・プログラムのテスト実行」に進むこと.

第4章 Java サーブレット・プログラムのテスト実行

Eclipse のプロジェクト・エクスプローラを使用して,上記で作った Java サーブレットのプログラムをテスト実行してみる.

  1. 実行したいサーブレットのクラスを選び,右クリック

    Eclipse のプロジェクト・エクスプローラで,実行したいクラス名.java(つまり HelloWorld.java)右クリック

  2. 実行 (Run As)」→「サーバーで実行 (Run on Server)」と操作
  3. サーバの選択

    ウインドウが開くので, 「ローカルホストの Tomcat v11.0 サーバ」が選択されていることを確認の後,「次へ (Next)」をクリック.

  4. 次はデフォルトのままでよい

    終了」をクリック.

    * Eclipse 内部の Tomcat サーバが起動しない場合には,公開 Tomcat サーバを停止する

    * すでに公開 Tomcat サーバを稼働させているときは, Eclipse 内部の Tomcat サーバが起動しない(同じポートを使うため)ので, Tomcat インストールディレクトリの bin にある停止スクリプトを使って公開 Tomcat サーバを停止させること.

  5. Eclipse 内部の Tomcat サーバが起動することを確認

    コンソール・ビューに表示される.

  6. 実行結果の確認

    Eclipse の組み込み Web ブラウザ (Internal Web ブラウザ)が開き,そこに実行結果が出る. 実行結果は次のようになる.

    Database
    
    1 apple 50円
    
    2 orange 20円
    
    3 strawberry 100円
    
    4 watermelon 150円
    
    5 melon 200円
    
    6 banana 100円
    

    組み込み Web ブラウザ内のアドレスバーの部分は,

    http://localhost:8080/hoge/HelloWorld
    

    のようになっていることを確認しておく(「hoge」の部分は,実際のプロジェクト名に読み替えること).

(参考)うまくいかない場合

第5章 エクスポート (Eclipse の Export 機能を利用)

Eclipse でエクスポートを行い,単体で動くようにする.

  1. プロジェクト・エクスプローラから,エクスポートしたいプロジェクト hoge を選択し, 右クリックメニューから「エクスポート」を選択.
  2. 選択ダイアログ

    「Web」→「WARファイル」→「次へ」

  3. WARエクスポートダイアログ
    Webモジュール:「hoge」
    宛先:「C:\tomcat11\webapps\hoge.war」
    

    混乱を防ぐために,エクスポートしたいプロジェクトの名前をそのまま付ける.

    「ソースファイルのエクスポート」「既存ファイルを上書き」→必要ならチェック. 「終了」でエクスポートが実行される.

  4. 動作確認

    Tomcat インストールディレクトリの bin にある起動スクリプトから Tomcat を実行し,Eclipse とは無関係にサーブレットが動くことを確認する.

    http://localhost:8080/hoge/HelloWorld

    なお,WEB-INF などのサーブレット実行に必要なディレクトリは,WAR の展開時に作成される.


参考Webページ: Jakarta EE ─ How to Start With Servlets

参考Webページ: Apache Tomcat 11 Migration Guide