はじめに
Windows環境でJava Webアプリケーションを開発するための環境構築手順をまとめます。
この記事で、JDKのインストールからデータベース接続まで、一通りの設定を行うことができます。
開発環境
| 項目 | 環境 |
|---|---|
| OS | Windows 11 Enterprise |
| IDE | Eclipse |
| サーバー | Apache Tomcat |
| DB | Oracle Database |
1. JDKの設定
Javaプログラムのコンパイルと実行に必要なJDK(Java Development Kit)をインストールし、システムで利用できるように設定します。
インストール
OracleまたはOpenJDKの公式サイトからJDKをダウンロードしてインストールします。
環境変数の設定
Windowsのシステム環境変数に以下を設定します。
| 変数名 | 設定値 |
|---|---|
| JAVA_HOME | JDKのインストールフォルダパス(例: C:\Program Files\Java\jdk-17) |
| PATH |
%JAVA_HOME%\bin を追加 |
動作確認
コマンドプロンプトで以下を実行します。
java -version
javac -version
表示されない場合は PCを再起動 してください。
それでも表示されない場合は、システム環境変数のPATHの設定値にフルパスを設定する
%JAVA_HOME%\bin > C:\Program Files\Java\jdk-17\bin
2. Eclipseの設定
EclipseでJava開発を行うために、JREとコンパイラーの設定 、 ビルド環境を整えます。
以下はEclipseで実施する操作です。
①JREの設定
EclipseにインストールしたJDKを認識させます。
- メニュー「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」
- 「追加」→「標準VM」を選択
- JDKのインストールディレクトリを指定して「適用」
②コンパイラーの設定
プロジェクトで使用するJavaバージョンに合わせてコンパイラー準拠レベルを設定します。
- メニュー「ウィンドウ」→「設定」→「Java」→「コンパイラー」
(または、対象のプロジェクト選択 → 「プロパティ」 → 「Javaコンパイラー」) - 「コンパイラー準拠レベル」をインストールしたJDKのバージョンに合わせる
| JDKバージョン | コンパイラー準拠レベル |
|---|---|
| JDK 8 | 1.8 |
| JDK 11 | 11 |
| JDK 17 | 17 |
コンパイラー準拠レベルがJDKのバージョンと一致していないと、コンパイルエラーや実行時エラーが発生する場合があります。
③ビルドエラーの対処
自動ビルドが無効の場合は「プロジェクト」→「クリーン」を実行します。
④JSPファイルのエラー対処
ライブラリの参照エラーが発生した場合は、ビルドパスを再設定します。
- プロジェクトを右クリック →「プロパティ」
- 「Javaのビルド・パス」→「ライブラリ」タブ
- エラーのあるライブラリを除去し、正しいライブラリを再追加
⑤ターゲットランタイムの設定
プロジェクトで使用するサーバー(Tomcat)を指定します。
- プロジェクトを右クリック →「プロパティ」
- 「ターゲット・ランタイム」→ 使用するTomcatにチェック
- 「適用して閉じる」
ターゲット・ランタイムが未設定の場合、JSPファイルでサーブレットAPIのエラーが表示されることがあります。
3. Tomcatの設定
WebアプリケーションをデプロイするためのTomcatサーバーをEclipseに追加し、設定を行います。
Eclipseへの追加
サーバービューからTomcatを追加します。
- 「ウィンドウ」→「ビューの表示」→「その他」→「サーバー」を選択
- サーバービューで右クリック →「新規」→「サーバー」
-
Apache Tomcatを選択し、インストールディレクトリを指定
ポート番号の変更
デフォルトの 8080 ポートを変更する場合は、サーバービューでサーバーをダブルクリックし、ポート番号を編集して Ctrl + S で保存します。
または <Tomcat>/conf/server.xml を直接編集することもできます。
<Connector port="8080" protocol="HTTP/1.1" ... />
4. データベース接続の設定
JavaアプリケーションからOracle Databaseに接続するための設定を行います。JDBCドライバの配置とデータソースの設定が必要です。
①JDBCドライバの配置
JDBCドライバ(jarファイル)を以下のいずれかに配置します。
- プロジェクトの
WEB-INF/libフォルダ - Tomcatの
libフォルダ(共通利用の場合)
②基本的な接続方法(DriverManager)
シンプルな接続方法ですが、コネクション管理が手動になるため、小規模なアプリケーション向けです。
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521/ORCL",
"username",
"password"
);
③JDBC接続文字列の構成
接続文字列 jdbc:oracle:thin:@localhost:1521/ORCL の各部分は以下の通りです。
| 部分 | 値 | 説明 |
|---|---|---|
| プロトコル | jdbc:oracle:thin |
OracleのThinドライバを使用することを示す |
| ホスト | localhost |
データベースサーバーのホスト名またはIPアドレス |
| ポート | 1521 |
Oracleのリスナーポート番号(デフォルトは1521) |
| サービス名 | ORCL |
接続先のOracleサービス名またはSID |
そして、Oracleの接続文字列には2つの形式があります。
サービス名を使用する場合(スラッシュ区切り)
jdbc:oracle:thin:@ホスト:ポート/サービス名
↑ココ
SIDを使用する場合(コロン区切り)
jdbc:oracle:thin:@ホスト:ポート:SID
↑ココ
実際の環境に合わせて、ホスト名・ポート・サービス名を変更してください。
ポート番号の後に指定するサービス名とSIDは、区切り文字が スラッシュとコロンでそれぞれ異なるので注意してください!
④データソースの設定(推奨)
コネクションプールを利用した接続方法です。本番環境ではこちらを推奨します。
context.xml の作成
<プロジェクト>/META-INF/context.xml を作成します。
以下の例は、サービス名 を指定しています。
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource
name="jdbc/myapp"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521/ORCL"
username="your_username"
password="your_password"
maxTotal="20"
maxIdle="10"
maxWaitMillis="10000"
/>
</Context>
主な属性の説明は以下の通りです。
| 属性 | 説明 |
|---|---|
| name | データソース名(JNDIルックアップで使用) |
| auth |
Container: Tomcatが認証 / Application: アプリが認証 |
| maxTotal | 最大接続数 |
JNDIによるデータソース取得
アプリケーションからデータソースを取得してコネクションを取得します。
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/myapp");
Connection conn = ds.getConnection();
⑤Spring Framework使用時(Context-ref.xml)
Spring Frameworkを使用している場合は、Bean定義でデータソースを設定します。<プロジェクト>/WEB-INF/context/Context-ref.xml を作成します。
今回は、サービス名を指定しています。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- JNDI経由(本番環境用) -->
<!--
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/myapp" />
</bean>
-->
<!-- DBCP経由(開発環境用) -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521/ORCL" />
<property name="username" value="your_username" />
<property name="password" value="your_password" />
</bean>
</beans>
補足
| 問題 | 対処法 |
|---|---|
| java -versionが認識されない | PC再起動、環境変数の確認 |
| EclipseでCheckstyleエラー | コードスタイルの警告のため、動作には影響なし |
| EclipseでJSPコンパイルエラー | ビルドパスのライブラリを確認・再設定 |
| log4j.xml関連のエラー | ログファイルを開いたままサーバーを起動しない |
おわりに
Java Webアプリケーションの開発環境の構築は意外と時間がかかるので、参考になれば嬉しいです。