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を使用する際のコマンドオプションについてです。」
スポンサーリンク