JavaFX on M1 Mac

以前に(別サイトだが)『M1 Mac に M1(Arm) 対応の JDK をインストールする』という記事を書いた。

そこでは JavaFX に関してはまるで触れなかった。

一応、一般的なことを書いておくと、OpenJDK 11 から、JavaFX は OpenJDK とは切り離され、開発する際には専用の SDK のインストールが必要となった。
ただこれは一般論であって JDK によっては同梱されている場合もある。

上の記事で触れた zulu のやつもその一つで、実際、以下のプログラムを何の苦もなくビルドしてくれた。


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;


public class HelloFX extends Application {

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        Scene scene = new Scene(new StackPane(l), 640, 480);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }

}

実行させると

とちゃんと動く。

ただ、である。

ハローワールド的なことはできても、もっと複雑な、例えば動画の再生で mediaplayer を使いたいなどと言った時、よほど環境をしっかり整えない限りできそうもない。

そもそも OpenJFX 自体、正式に M1 対応がなされたのは比較的最近のことらしい。(こちらの記事参照)

現時点(2022/5)で凝ったアプリの開発は無理なような。。。

 

で、この現状を見て思い浮かぶのは「Java と JavaScript の立場が逆転した」というよく聞くアレと一時期の「Java 警察」のハジケっぷりだ。

その話はおいおい。

 

猪股弘明

 

クリックclose

“JavaFX on M1 Mac” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です