非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Ubuntu20.04でOpenJDK11/JavaFXをIDEを使わず使用する方法

      2020/06/28

以前、以下の記事でLinuxへのOpenJDK8/JavaFXのインストール方法について書きました。

このときはapt-get install openjfxでインストールさえすればJavaFXは組み込まれコンパイルや実行時に何も気にせず使用できたものが、Java11になってからはそうもいかなくなったようです。OpenJDK11のインストールからJavaFXの使用方法について書き留めておきます。

 

まずはOpenJDKのインストール

OpenJDKのインストール方法は以前と変わりありません。以下のコマンドでインストールできます。

sudo apt install openjdk-11-jdk
 

 

インストールが終わったらバージョン確認しておきましょう。

 

JavaFXのダウンロードと解凍

JavaFXのインストール方法は以前紹介した方法とちょっと違います。

以前はapt-getでインストールしましたが、今回は以下のサイトからダウンロードします。

ダウンロードしたら任意のフォルダに解凍します。僕はホームホルダに置きました。(ちなみにそこにはGOPATHもリンクしている)

 

 

コンパイルと実行方法

Javaのコンパイル時と実行時にオプションとしてJavaFXのパスを渡してやればOKです。

export PATH_TO_FX=/<home path>/lib/openjfx-11.0.2_linux-x64_bin-sdk/javafx-sdk-11.0.2/lib
javac --module-path $PATH_TO_FX --add-modules javafx.controls Hello.java
java --module-path $PATH_TO_FX --add-modules javafx.controls Hello
 

 

以下のコード(Hello.java)をコンパイルして実行してみましょう。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.scene.text.Font;

public class Hello extends Application{
  public static void main(String[] args){
    launch(args);
  }

  @Override
  public void start(Stage stage) throws Exception{
    Label label = new Label("Hello JavaFX!");
    label.setFont(new Font("Arial", 30));
    BorderPane pane = new BorderPane();
    pane.setCenter(label);
    Scene scene = new Scene(pane,400,150);
    stage.setScene(scene);
    stage.show();
  }
}
 

 

以下の画面が現れたら成功です。

 

次回はFXMLを使用する際のコマンドオプションについてです。」

スポンサーリンク

 - Java, Linux