以前に(別サイトだが)『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 警察」のハジケっぷりだ。
その話はおいおい。
猪股弘明