WSLで構築するJava開発環境:EclipseとTomcatのインストール方法

最近、Javaを触る必要がでてきたのですが、手持ちの環境にインストールするのはちょっと抵抗感があってできればコンテナや仮想化で封じ込めたいなあと考えました。JavaTomcatを使用するだけならそんなに問題はないのですが、Eclipseも必要といわれてしまい。GUIの表示も必要となるとけっこう大変だなと感じます。

しかし、Dockerの場合にはXGUIアプリを表示するには設定追加をしないといけないのですが、WindowsWSL環境(Windows Subsystem for Linux)ではバージョンアップを重ねることでXGUIアプリを実行してWindows上に表示することができるようになりました。また、以前は問題であったsystemdのPIDが1でないということでsystemctlを動かせず、サービス化されたアプリを動作できなかったのですが、こちらも解決できています。

このようにWindows上のWSLを使用することで比較的にXGUIアプリやサービス化されたアプリもしようすることができるようになりました。

今回はWSLを使用して、Ubuntu24.04LTSディストリビューション上にJavaTomcatEclipseをインストールしてみたいと思います。前提となりますが、WindowsでWSLが使用する設定を行ってください。また、使用するバージョンは以下の通りです。古いバージョンでは使用できない機能がありますので、できるだけ最新のバージョンをお使いください。

事前設定

アプリのインストールに先立って事前設定を行います。 私は現在のUbuntuディストリビューションの状態を壊したくなかったので環境をエクスポートして新たに作成して環境設定を行っています。

【参考】WSLの環境複製

uepon.hatenadiary.com

ここではSystemdを動作させるための設定を行います。この設定はデフォルトでは有効化されていないので、されていない方は必ず行ってください。(行っていないとTomcatインストールで引っ掛かります

【参考】

learn.microsoft.com

使用するディストリビューションを起動して(今回私はUbuntu24.04-Javaを使用しています)

# PS> wsl -d 【使用するディストリビューション名】
PS> wsl -d Ubuntu24.04-Java

ディストリビューションイメージが起動したら、以下のコマンドでwsl.confファイルを作成・編集します。

# sudo nano /etc/wsl.conf 

ファイルの内容は以下のようになります。

/etc/wsl.conf

[boot]
systemd=true

編集が完了したらファイルを保存します。(nanoは【Ctrl+O】で書き込み 、【Ctrl+X】でエディタ終了) そして、ディストリビューションのコンソールを一旦抜けます。

# exit

設定を有効化するために一度WSLを終了します。これを行わないと設定が有効化されないので注意が必要ですが、この作業はWSLで実行中の他のOSイメージにも波及するのでその点にも注意してください。

PS> wsl --shutdown

終了後、ディストリビューションイメージを再起動します。

PS> wsl -d Ubuntu24.04-Java

コンソール接続後に以下のコマンドを実行すると

$ systemctl list-unit-files --type=service

Systemd(Systemctl)が問題なく実行されています。

Javaのインストール

事前作業が終わったので、まずJavaJDKをインストールしていきます。Javaのインストールは比較的簡単でaptコマンドだけで終わります。今回使用するバージョンはopenjdk11ですので、openjdk-11-jdkをインストールします。

# sudo apt update
# sudo apt install openjdk-11-jdk

インストール後はバージョンを確認すると、以下のようになっていました。

# java --version
# javac --version

せっかく開発環境を手にいれたのでjavaのソースファイルをコンパイル・実行してみましょう。以下のようなサンプルコードを作成してコンパイルし、実行してみます。

class Hello{
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

以下のように実行が行われました。

Tomcat9のインストール

つづけてTomcatをインストールを行います。こちらも基本的にはaptコマンドを使用してインストールします。以下のように実行すれば大丈夫です。先の事前設定を行っていないとsystemctlの実行ではまりますので注意してください。

# sudo apt update
# sudo apt install tomcat9 tomcat9-admin
# sudo systemctl status tomcat9

systemctltomcat9が認識できていれば後は設定ファイルの設定を行います。

Web画面からログインするので、そのユーザ権限のファイルの編集します。(今回の例ではuser/passで登録しています)ユーザ情報に合わせてxmlファイルの編集を行ってください。

ファイルの編集

# sudo nano /etc/tomcat9/tomcat-users.xml

追加部分は<tomcat-users ... >と</tomcat-users>間に設定を入れます。

<tomcat-users ... >
...
<user username="user" password="pass" roles="manager-gui,admin-gui"/>
...
</tomcat-users>

あとはサービスを再起動し設定を反映して確認を行います。

# systemctl restart tomcat9
# systemctl status tomcat9

動作が確認できたらブラウザからTomcat9へアクセスしてみます。WSL上で動いているのでリンク先に以下を設定します。

http://localhost:8080/

以下のように表示されればOKです。赤枠の部分をクリックしてログインのテストを行ってみます。

設定したユーザ情報はuser/passでしたので、それを入力すると

管理画面が表示され問題なくTomcatのインストールが完了しました。

Eclipseのインストール

あとは大物のIDEであるEclipseのインストールを行います。本来であれば最新版のインストールをしたいのですが、JavaTomcatも古く、Java11ベースで動いている中でも比較的新し目のバージョンを使うことにしました。インストールしたバージョンは2019-12を使用しています。また、そのままインストールするとランタイムエラーが発生するので以下のパッケージも入れておくと良いでしょう。日本語フォントはPleiadesを使用しないなら不要です。

# sudo apt install libswt-gtk-4-java libswt-gtk-4-jni
# sudo apt install gcc g++ gdb make
# sudo apt install fonts-noto-cjk fonts-mplus fonts-ipafont-gothic fonts-ipafont-mincho fonts-ipaexfont-gothic fonts-ipaexfont-mincho fonts-vlgothic
# sudo apt install adwaita-icon-theme-full

あとは、Eclipse以下からダウンロードします。

www.eclipse.org

ダウンロードしたファイルをWSL側にコピーし、以下のコマンドで展開を行い、実行すると以下のようになります。パッケージの展開を行ったパスにeclipseディレクトリを作成しますので実行時にはパス指定に注意してください。

# tar -zxvof eclipse-jee-2019-12-R-linux-gtk-x86_64.tar.gz
# ./eclipse/eclipse

起動するとスプラッシュスクリーンが表示されて

IDEの画面が表示されました。

これでインストール作業は完了です。

おわりに

ようやく、WSL環境に古いJavaの開発環境の作成ができました。私はJavaはほとんど使用していなかったこともあり、名称の変更やわからないことも多くあり大変でした。特にJavaのバージョンがたくさんある点かな…。これに比べると最近のPythonNode.jsのインストールがとても便利になっていることを感じますね。

この環境で開発するのはちょっと気が重いです…🙃

/* -----codeの行番号----- */