【はじめに】
Windows11Pro上で、Javaの開発環境構築を試みました。
以前アップした、Java0001-Development environment constructionの改定版です。
開発環境構築というと「Java, Tomcat, Eclipse, MySQL」のインストール・設定の話で終わることが多いですね。私はこれらが連携していることを確認するプログラム(ソースコード)の導入・設定と結果の出るところまでやってみました。後述する【私が試したこと】に5日間位要しました。最初はすべて最新のものであれば構築できると簡単に考えていたのですがそうならなかったのです。
以下を実行される方は自己責任でお願い致します。
m(_ _)m
【バージョン一覧】
現時点(2025年)で安定して動作し、学習や開発の基盤として推奨できる Java, Tomcat, Eclipse, MySQL のバージョン構成です。扱いやすく、相互互換性があるものを選びました。
私が使ったものは「」内に示しました。
ソフトウェア | 推奨バージョン | 互換性のポイント |
---|---|---|
Java | OpenJDK/Oracle JDK 17 | Tomcat 10.1.x, MySQL Connector/J 対応 |
Apache Tomcat | 10.1.x | Jakarta EE 9.1 / Java 17 に対応 |
Eclipse | 最新版(2025年版) | Jakarta EE 9.1 / Tomcat 10.x に最適 |
MySQL | Community 8.1.x | JDBC Driver で Java 17 に対応 |
Java
バージョン: OpenJDK 17 または Oracle JDK 17 「jdk-17.0.14_windows-x64_bin.exe」
理由:
JDK 17 は LTS(長期サポート版)で、2030年9月までサポートされます。
最新機能が追加されつつも安定しており、TomcatやEclipseとの互換性が高い。
MySQL JDBC Driver(MySQL Connector/J)とも相性が良い。
ダウンロード先:
OpenJDK: https://jdk.java.net/17/
Oracle JDK: https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
Tomcat
バージョン: Apache Tomcat 10.1.x 「apache-tomcat-10.1.34.exe」
理由:
Servlet 5.0 / JSP 3.0 / Jakarta EE 9.1 をサポート(現行の仕様)。
Java 17 に対応し、開発における互換性が高い。
最新版でも安定しており、学習から小規模アプリケーション開発まで対応可能。
ダウンロード先:
https://tomcat.apache.org/download-10.cgi
Eclipse IDE
バージョン: Eclipse IDE for Enterprise Java and Web Developers (最新バージョン) 「pleiades-2024-12-java-win-64bit-jre_20250120.exe」
理由:
最新版の Eclipse は Jakarta EE 9 に対応しており、Servlet 5.0 や JSP 3.0 との連携がスムーズ。
最新バージョンを利用することでセキュリティやバグ修正の恩恵が得られる。
ダウンロード先:
https://www.eclipse.org/downloads/
インストール時の注意:
「Eclipse IDE for Enterprise Java and Web Developers」を選択してください。
Pleiades All in One(日本語化済み Eclipse)を利用する場合は以下から:
https://willbrains.jp/
MySQL
バージョン: MySQL Community Edition 8.1.x 「mysql-installer-community-8.0.41.0.msi」
MySQL Connector/J(JDBC Driver)
バージョン: 「mysql-connector-j-9.2.0.zip(解凍し、mysql-connector-j-9.2.0.jar)」
理由:
最新の MySQL 8.x シリーズは性能とセキュリティの向上が図られており、2025年現在も広く使われています。
MySQL Connector/J(JDBC Driver)は Java 17 に対応しています。
ダウンロード先:
https://dev.mysql.com/downloads/mysql/
GUIツール(推奨):
MySQL Workbench (最新バージョン)
ダウンロード: https://dev.mysql.com/downloads/workbench/
【セットアップの注意点】
Javaのインストール後の設定
環境変数 JAVA_HOME を設定し、パスを通してください。
JAVA_HOME=C:\Program Files\Java\jdk-17
Path=%JAVA_HOME%\bin;
Tomcatのセットアップ
Java 17 がインストールされていることを確認後、catalina.bat run で Tomcat が正常起動するか確認してください。
CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 10.1
Path=%CATALINA_HOME%\bin;
Eclipseの設定
作成先フォルダを「c:\pleiades」にしました。
Eclipse に Tomcat を連携させるには、以下の手順を実施します:
Eclipse 起動後、「サーバー」ビューを開く。
「新しいサーバーを追加」を選択し、Tomcat 10.1 を選択。
ローカルの Tomcat ディレクトリを指定して連携。
※サーバーをダブルクリックして行う。この際、
サーバーロケーションが「Tomcatインストールを使用(Tomcatインストールの制御)」になっていて、
サーバーパス:C:\Program Files\Apache Software Foundation\Tomcat 10.1
デプロイパス:C:\Program Files\Apache Software Foundation\Tomcat 10.1\webapps\TestEnvironment
ポートが
Tomcat管理ポート:8005
HTTP/1.1:8080
となっているか等を確認
※サーバー・パスおよびデプロイ・パスを変更するにはモジュールなしでサーバーを公開する必要があります。とあります。→この手順は、サーバービューのサーバーを停止し、サーバーを右クリックし「追加および除去」で「TestEnvironment」を除去してから、サーバーを起動する。その間にサーバーをダブルクリックして、変更し、変更したら[ctrl]+[s]で保存しする。サーバーを停止し、サーバーを右クリックし「追加および除去」で「TestEnvironment」を追加し、サーバーを起動する。
MySQLの接続設定
Eclipse 内から MySQL に接続する際、MySQL Connector/J を利用します。
JDBC ドライバを WEB-INF/lib に追加してください。
JDBC URL の形式は以下のように指定します:
jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false
【セットアップ時に作成したファイル・デスクトップアイコン】
これらがデスクトップ上あると後々便利でした。
MySQL接続情報を準備
「MySQL 8.0 Command Line Client」
「MySQL 8.0 Command Line Client – Unicode」
のショートカットをデスクトップに作成しました。
データベース(例:test_db)に以下の設定で接続します:
ユーザー名:user
パスワード:password
JDBC URL:jdbc:mysql://localhost:3306/test_db
以下のSQLスクリプトをMySQLで実行して、テスト用データベースとテーブルを作成します。
——
— テストデータベース作成
mysql> CREATE DATABASE test_db;
— テストテーブル作成
mysql> USE test_db;
mysql> CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
— データ挿入
mysql> INSERT INTO test_table (name) VALUES (‘Alice’), (‘Bob’), (‘Charlie’);
mysql> FLUSH PRIVILEGES;
——
「mysql-connector-j-9.2.0.jar」
解凍したファイルをデスクトップに置きました。
「mysql-connector-j-9.2.0.jar」を[ctrl]+[c]し、src/main/webapp/WEB-INF/lib上で、[ctrl]+[v]で貼り付ける。
「TestServlet.java」
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; // サーブレットURLマッピング @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1L; // MySQL接続情報 private static final String DB_URL = "jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false"; private static final String DB_USER = "user"; private static final String DB_PASSWORD = "password"; // GETリクエストに応答 @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { out.println("<html><body>"); out.println("<h1>環境構築テスト</h1>"); // JDK動作確認 out.println("<h2>JDK動作確認: OK</h2>"); // MySQL接続テスト testDatabaseConnection(out); // Tomcat確認 out.println("<h2>Tomcat動作確認: OK</h2>"); out.println("</body></html>"); } } private void testDatabaseConnection(PrintWriter out) { // データベース接続とリソースの管理を try-with-resources で行う try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM test_table")) { out.println("<h2>MySQL接続テスト: OK</h2>"); out.println("<h3>テストテーブルのデータ:</h3>"); out.println("<ul>"); // テーブルのデータを表示 while (rs.next()) { out.println("<li>ID: " + rs.getInt("id") + ", Name: " + rs.getString("name") + "</li>"); } out.println("</ul>"); } catch (SQLException e) { // データベース接続エラーの処理 out.println("<h2>MySQL接続テスト: エラー</h2>"); out.println("<p>エラーメッセージ: " + e.getMessage() + "</p>"); } } }
エディターで作ったTestServlet.javaを[ctrl]+[c]し、src/main/java 上で、[ctrl]+[v]で貼り付ける。
「Web.xml」
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- サーブレットの設定 --> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>TestServlet</servlet-class> </servlet> <!-- サーブレットのURLマッピング --> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/TestServlet</url-pattern> </servlet-mapping> </web-app>
「C:\pleiades\workspace\TestEnvironment\src\main\webapp\WEB-INF」の中の「web.xml」を上記のように修正します。
私はEclipseのパッケージ・エクスプローラー内で、「web.xml」を右クリックし、「次で開く」→「Plain Text Editor」で編集しました。
【私が試したこと】
Eclipseのパッケージ・エクスプローラー内で、「TestEnvironment」プロジェクトを右クリックし、「プロパティ―」を開き、「Javaコンパイラー」を17に統一したり、「Javaのビルド・パス」の「ライブラリー」タブでクラスパスに「JARの追加」ボタンで、「mysql-connector-j-9.2.0.jar」を追加し、「順序およびエクスポート」タブ内を編集しました。
Eclipseのメニューの「ウインドウ」→「設定」→「Java」→「インストール済みのJRE」を設定したり、「ファイル」→「エクスポート」→「Web」→「WARファイル」を利用しました。
やっているうちにこんがらがってしまい、「TestEnvironment」プロジェクトを何度も削除したり、Eclipseや今までのJava環境を整理して(といういうか、削除しまくって)、やっとテストができました。このテストでは最終的に上記のアイキャッチ画像のように、ブラウザに「http://localhost:8080/TestEnvironment/TestServlet」が表示されればOKです。
コメント