ubuntu-desktop-lxde-vncというdockerイメージを利用する。
コンテナの起動
以下コマンドでコンテナを起動できる
docker run -itd -p 8080:80 --name javafx kajindowsxp/javafx
正常に終了すれば、ブラウザからhttp://localhost:8080にアクセスすると、デスクトップ画面が表示される。
Dockerfile(参照)
自分でイメージをビルドしたい場合は下記Dockerfileを用いる。
FROM dorowu/ubuntu-desktop-lxde-vnc:focal
WORKDIR /root
RUN apt update
RUN apt install -y git zip at-spi2-core
ADD https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz .
RUN tar xvzf openjdk-17_linux-x64_bin.tar.gz
RUN mv jdk-17/ /usr/local/lib
RUN ln -s /usr/local/lib/jdk-17/bin/javac /usr/local/bin/javac
RUN ln -s /usr/local/lib/jdk-17/bin/java /usr/local/bin/java
ADD https://download2.gluonhq.com/openjfx/17.0.0.1/openjfx-17.0.0.1_linux-x64_bin-sdk.zip .
RUN unzip openjfx-17.0.0.1_linux-x64_bin-sdk.zip
RUN mv javafx-sdk-17.0.0.1/ /usr/local/lib/
RUN rm -r *
RUN echo 'export PATH_TO_FX=/usr/local/lib/javafx-sdk-17.0.0.1/lib' >> /root/.javarc
RUN echo 'alias javac="javac -encoding utf8 --module-path $PATH_TO_FX --add-modules javafx.controls"' >> /root/.javarc
RUN echo 'alias java="java --module-path $PATH_TO_FX --add-modules javafx.controls"' >> /root/.javarc
RUN sed -i '1isource /root/.javarc' /root/.bashrc
コーディング
VSCodeをアタッチするか、gitのリポジトリからクローンするなりお好きな方法でjavaを書く。
実行
一番左下のアイコンから、「System Tools」→「LXTerminal」でターミナルを開く
通常通り、コンパイルと実行を行うとFXのウィンドウを開くことができる