EclipseとTomcatとGradleでHelloWorld

Eclipse WTPとTomcatを使ったWebアプリケーションの開発環境の構築方法を説明します。

対象とするOSは64bit版Windows 10です。

ソフトウェのインストール

使用するソフトウェアのバージョンは次のとおりです。

Java
OpenJDK 9.0.4
Tomcat
9.0.6
Eclipse
4.7.3

すべてファイルをC:\devフォルダ以下に配置します。

Javaのインストール

JavaはOpenJDKを使います。OpenJDKは次のサイトからダウンロードします。

JDK 9 Releases

図のように、tar.gz版をダウンロードします。ダウンロードしたファイルを7-Zip等で展開します。7-Zipの場合には2回展開するとjdk-9.0.4というフォルダができます。

展開してできたjdk-9.0.4フォルダをC:\dev\Java以下に置きます。

複数のJDKを入れられるようにJavaフォルダの下においています。以下、TomcatやEclipseも同様の考え方です。

Eclipseから使用するだけであればPATHの設定は必要ないのですが、GradleでJavaを使用するためPATHの設定を行います。

エクスプローラのPCを右クリックし、プロパティを選択します。

表示された画面で、「システムの詳細設定」を押します。

システムの詳細設定では、「詳細設定」タブの「環境変数」ボタンを押します。

表示された環境変数ウィンドウでは、下のシステム環境変数の「新規」ボタンを押します。

新しいシステム変数画面で、JAVA_HOME環境変数を次の画面のように設定します。変数値は、Javaを置いたフォルダ「C:\dev\Java\jdk-9.0.4」になります。

次にPATHの設定になります。環境変数ウィンドウでPATH変数を選択し、「編集」ボタンを押します。

環境変数名の編集画面では、「新規」ボタンを押し、そこにJavaの本体があるフォルダの「%JAVA_HOME%\bin」を指定します。そして、「上へ」ボタンを押し今設定した値がリストの先頭になるようにします。

これで環境変数の設定は終わりです。表示されているウィンドウのOKボタンを押してウィンドウを閉じます。

最後に設定の確認です。コマンドプロンプトを起動(Windowsシステムツールの中)します。コマンドプロンプトで次のコマンドを入力し、バージョン情報が表示されれば完了です。

C:\>java -version
openjdk version "9.0.4"
OpenJDK Runtime Environment (build 9.0.4+11)
OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode)

Tomcatのインストール

Tomcatは、次のサイトからダウンロードします。

Apache Tomcat® - Apache Tomcat 9 Software Downloads

図のように、zip版をダウンロードします。ダウンロードしたファイルを7z等で展開します。展開するとapache-tomcat-9.0.6というフォルダができます。

展開してできたapache-tomcat-9.0.6をC:\dev\Tomcat以下に置きます。

LinuxやmacOSでTomcatを使用する場合にはtar.gz版を使用してください。zip版だと実行権限等が復元できないためです。

Eclipseのインストール

Eclipseは、次のサイトからダウンロードします。

Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects...

図のように、Java EE Developersの64bit版をダウンロードします。ダウンロードしたファイルを7z等で展開します。展開するとeclipseというフォルダができます。

Eclipseに関しては展開してできたフォルダをそのまま使わずにバージョン番号をつけた「eclipse4.7.3]という名前に変更します(このあたりは好みです)。そのeclipse4.7.3フォルダをC:\dev\Eclipse\bin以下に置きます。

Eclipseの準備

Eclipse起動用ショートカットの作成

Eclipseはeclise.exeファイルを実行すると起動できますが、別途ショートカットを作り、それにあれこれ仕込んだほうがいろいろ便利に使用できます。

ショートカットを作る前に、Eclipseのワークスペース(Eclipse上で使用するファイルや設定の格納場所)をC:\dev\Eclips\ws\e4.7.3に作成します。最後のe4.7.3はEcllpse 4.7.3用のワークスペースという意味です(これも好みの問題なので任意の名前で構いません)。また、ショートカットを置くフォルダC:\dev\Eclipse\shortcutも作成します。

フォルダーの準備ができたのでショートカットを作成します。C:\dev\Eclipse\bin\eclipse4.7.3\eclipse.exeのショートカットをC:\dev\Eclipse\shortcutに作成します。ショートカットの名前はEclipse4.7.3としておきます。

ショートカットの名前や場所は任意のもので問題ありません。

ショートカットを右クリックし、プロパティを選びます。ショートカットタブのリンク先を次のように変更します。

C:\dev\Eclipse\bin\eclipse4.7.3\eclipse.exe -vm C:\dev\Java\jdk-9.0.4\bin\javaw.exe -data C:\dev\Eclipse\ws\e4.7.3 -vmargs -Dfile.encoding=utf-8

起動オプションをいろいろ指定していますが、それぞれの意味は次のとおりです。

起動オプション 説明
-vm Eclipseの起動に使用するJavaのパスを指定します
-data ワークスペースの場所を指定します
-vmargs Javaにわたすパラメーターを指定します。今回は、デフォルトの文字コードをutf-8にしています。今どきはutf-8以外で作ることはないと思いますが、デフォルトを変えたい場合にはここの値を変更します。その他、使用するメモリを増やしたりする場合にもここで指定します

このショートカットを実行するとEclipseが起動します。

Eclipseの設定

Eclipse上からTomcatの操作ができるように、設定を行います。まず、作成したショートカットを実行しEclipseを起動します。Eclipseのメニューから「Window」→「Preferences」を選択します。出てきたダイアログの中の「Server」→「Runtime Environments」を選択します。出てきた画面の「Add」ボタンを押します。

次にNew Server Runtime Environment画面では「Apache Tomcat v9.0」を選択します。

次のTomcat Serverの画面では、Browseボタンを押し「C:\dev\Tomcat\apache-tomcat-9.0.6」を選択します。

あとは、「Finish」→「Apply and Close」ボタンを押します。

アプリケーションの作成

プロジェクトの作成

Eclipseでアプリケーションを作成する場合にはプロジェクトというものを作成します。プロジェクトはアプリケーションに必要なファイル群をまとめたものです。今回はGradleプロジェクトを作成します。具体的には「File」メニューから「New」→「Project」を選択します。

Select a wizard画面では「Gradle」→「Gradle Project」を選択し、「Next」ボタンを押します。

次のWelcome画面は「Next」ボタンを押します。

次のNew Gradle Project画面では、プロジェクト名を入力し、「Next」ボタンを押します。プロジェクト名は「test」とします。

次のOptions画面では、まず「Override workspace settings」チェックボタンにチェックを入れます。その下の、「Specific Gradle version」に「4.6」と入力します。要するに使用するGradleのバージョンを指定しています。

最後の画面は特に指定するものはないので、「Finish」ボタンで終了します。 

Gradleによる環境設定

プロジェクトが作成できたので、次にGradleを使いWebアプリケーションを作るための環境設定を行います。testプロジェクトを開き、build.gradleファイルを開きます。

build.gradleファイルの内容を次のように変更します。

apply plugin: 'war'
apply plugin: 'eclipse-wtp'

sourceCompatibility = 9
targetCompatibility = 9

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'javax.servlet:javax.servlet-api:3.1.0'
}

eclipse {
    project {
        name = 'test'
    }

    wtp {
        facet {
            facet name: 'jst.java', version: '1.9'
            facet name: 'jst.web', version: '3.1'
        }
        component {
            deployName = 'test'
            contextPath = 'test'
        }
    }
}

コマンドプロンプトからワークスペース内のプロジェクトのフォルダに移動して、「gradlew eclise」と入力しEclipseのプロジェクト環境の設定を行います。

C:\>cd C:\dev\Eclipse\ws\e4.7.3\test

C:\dev\Eclipse\ws\e4.7.3\test>gradlew eclipse
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
Download https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.pom
Download https://repo.maven.apache.org/maven2/net/java/jvnet-parent/3/jvnet-parent-3.pom
Download https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
Download https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar

BUILD SUCCESSFUL in 10s
5 actionable tasks: 5 executed
EclipseでWebアプリケーションを作るときにはWTP形式のプロジェクトで行うのが普通です。今回はGradleプロジェクトとして作成していますので、WTPプロジェクトではありません。gradlew eclipseとすることでEclipse WTPに必要な設定ファイルが作成され、WTPプロジェクトとして扱うことができるようになります。

コマンドを入力し終えたら、Eclipseに戻ります。プロジェクト名にカーソルを合わせた状態でF5キーを押します。そうすると、次のように標準で作成されていたソースコードがエラーになります。

今回の作業もそうですが、EclipseのIDE上で変更したファイル以外は自動的に同期されません。そのためF5キーを押してファイルを再読込する必要があります。

今回は標準で作成されたソースコードは不要なので、削除します。Java Resourcesの中のsrc/main/javaとsrc/test/javaの中のファイルを削除します。

削除してもまだエラーが出ています。

このエラーはproject facetというEclipse WTPの設定ファイルがおかしな状態なため起きています。これは(おそらく)手動で直さないといけません。設定ファイルは隠しファイル(先頭が.で始まるファイル)のため、それを表示します。

次に「.* reosurces」のチェックを外します。

そうすると、.settingsフォルダが表示されるのでその中の「org.eclipse.wst.common.project.facet.core.xml」ファイルを開きます。そして、次の2行を削除します。

	<installed facet="jst.web" version="2.4"/>
	<installed facet="jst.java" version="1.9"/>

削除して、ファイルを保存するとエラーが消えます。

アプリケーションの作成

Servletの作成

Hello worldを表示するためにHelloSerlvetを作成します。HelloServletを作るには、testプロジェクトのJava Resourcesの中のsrc/main/javaを右クリックし、「New」→「Class」を選択します。

表示されたウィザードで、NameにSampleServlet、Superclassにjavax.servlet.http.HttpServletと入力します。

そうするとHelloServletクラスができますので、次のように変更します。

package test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try (PrintWriter pw = response.getWriter()) {
            pw.println("Hello world");
        }
    }
}

Tomcatの設定

アプリケーションを起動するためにTomcatの準備をします。Tomcatは、Eclipseの下部のServersビューから設定します。Serversビューに表示されている「No servers available. ~~」をクリックします。

表示された、Define a New Server画面で、「Tomcat v9.0 Server」を選択し、「Next」ボタンを押します。

次に、Tomcat上で動作させるアプリケーションを指定します。今回はtestアプリケーションを動かしますので、「test」を選択し「Add>」ボタンを押します。「Finish」ボタンを押して設定は完了です。

アプリケーションの起動と確認

アプリケーションとサーバーの準備ができましたので、実行して確認してみます。

Tomcatサーバーを起動するには、ServersビューのTomcatを選択し、起動ボタンを押します。

起動後、好きなブラウザから次のURLにアクセスします。

http://localhost:8080/test/hello

Hello worldと表示されれば完了です。

コメント