最近、Java
を触る必要がでてきたのですが、手持ちの環境にインストールするのはちょっと抵抗感があってできればコンテナや仮想化で封じ込めたいなあと考えました。Java
とTomcat
を使用するだけならそんなに問題はないのですが、Eclipse
も必要といわれてしまい。GUIの表示も必要となるとけっこう大変だなと感じます。
しかし、Docker
の場合にはX
のGUIアプリを表示するには設定追加をしないといけないのですが、WindowsのWSL
環境(Windows Subsystem for Linux)ではバージョンアップを重ねることでX
のGUIアプリを実行してWindows上に表示することができるようになりました。また、以前は問題であったsystemdのPIDが1でないということでsystemctl
を動かせず、サービス化されたアプリを動作できなかったのですが、こちらも解決できています。
このようにWindows上のWSL
を使用することで比較的にX
のGUIアプリやサービス化されたアプリもしようすることができるようになりました。
今回はWSL
を使用して、Ubuntu24.04LTS
ディストリビューション上にJava
、Tomcat
、Eclipse
をインストールしてみたいと思います。前提となりますが、WindowsでWSLが使用する設定を行ってください。また、使用するバージョンは以下の通りです。古いバージョンでは使用できない機能がありますので、できるだけ最新のバージョンをお使いください。
- Windows11…23H2
- WSL…2.2.4.0
- WSLで使用するディストリビューション…Ubuntu24.04 LTS
- Java…OpenJDK11
- Tomcat…Tomcat9
- Eclipse…Eclipse2019-12
事前設定
アプリのインストールに先立って事前設定を行います。 私は現在のUbuntuディストリビューションの状態を壊したくなかったので環境をエクスポートして新たに作成して環境設定を行っています。
【参考】WSLの環境複製
ここではSystemdを動作させるための設定を行います。この設定はデフォルトでは有効化されていないので、されていない方は必ず行ってください。(行っていないとTomcatインストールで引っ掛かります)
【参考】
使用するディストリビューションを起動して(今回私は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のインストール
事前作業が終わったので、まずJava(JDK)をインストールしていきます。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
systemctlでtomcat9が認識できていれば後は設定ファイルの設定を行います。
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
上で動いているのでリンク先に以下を設定します。
以下のように表示されればOKです。赤枠の部分をクリックしてログインのテストを行ってみます。
設定したユーザ情報はuser/passでしたので、それを入力すると
管理画面が表示され問題なくTomcat
のインストールが完了しました。
Eclipseのインストール
あとは大物のIDEであるEclipse
のインストールを行います。本来であれば最新版のインストールをしたいのですが、Java
もTomcat
も古く、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
以下からダウンロードします。
ダウンロードしたファイルをWSL
側にコピーし、以下のコマンドで展開を行い、実行すると以下のようになります。パッケージの展開を行ったパスにeclipse
ディレクトリを作成しますので実行時にはパス指定に注意してください。
# tar -zxvof eclipse-jee-2019-12-R-linux-gtk-x86_64.tar.gz # ./eclipse/eclipse
起動するとスプラッシュスクリーンが表示されて
IDEの画面が表示されました。
これでインストール作業は完了です。
おわりに
ようやく、WSL
環境に古いJava
の開発環境の作成ができました。私はJava
はほとんど使用していなかったこともあり、名称の変更やわからないことも多くあり大変でした。特にJava
のバージョンがたくさんある点かな…。これに比べると最近のPython
やNode.js
のインストールがとても便利になっていることを感じますね。
この環境で開発するのはちょっと気が重いです…🙃