以前、「ubuntu20.04 LTS で javafx を使う」という記事を書いたが、実際問題として【単純に動けばそれでいい】という発想だったのでバージョン差によるエラー表示等を一切無視していた。
その理由は、javaの長期サポート版がその時点では古かったので最新版が発表されるまでの応急処置的な記事だったのだが、先日その java の長期サポート版が出たと聞き色々と調べた結果をメモ書きにして残しておく事にした。
まず
Oracle java ではなく Openjava を使う。
ubuntu20.04 では現在 openjdk-17-jdk が apt でインストール出来る
最初から書くと
$ sudo apt search "^openjdk.*jdk$"
で問い合わせをすると
インストール可能な java が表示されるのでその中に
openjdk-17-jdk/focal-updates,now 17+35-1~20.04 amd64
OpenJDK Development Kit (JDK)
という項目があればそれを指定してインストールする。
$ sudo apt install openjdk-17-jdk
次に javafx だが、java17 用のものは ubuntu20.04 の apt では供給されていないので、本家からダウンロードする。
openjfx 配給サイト
https://gluonhq.com/products/javafx/
下にスクロールして
openjfx-17.0.1_linux-x64_bin-sdk.zip
を選択しダウンロードする。
以下、追加(2022/04/24)
javafx のダウンロード方法が変更されています
その件についての記事はこちらです。
ここからが少々厄介。
通常ファイルはダウンロードされる際にはカタカナ名で「ダウンロードフォルダ」と書かれたフォルダにダウンロードされるのだが、そのままでは何かとトラブルがあるのでそのファイルを
/home
の下に新たに英語(半角数字)で書かれたフォルダを作ってそこに移動させる。
例
/home/38/openjfx-17.0.1_linux-x64_bin-sdk.zip
そこで解凍。
java 17 の環境が揃ったのでここから前回の記事のように
で、サンプルコードは以下のサイトのものを使って作成します
https://docs.oracle.com/javase/jp/8/javafx/get-started-tutorial/hello_world.htm
注意
現在上記のサイトにある 例3-1 Hello Worldのプログラムはコマンドラインでのコンパイルおよび表示ではエラーが出ます。
最初の部分 package helloworld; の一行は不要ですので削除して下さい
(以前はこのサンプルコードではなかったような気がするが・・・?)
その「38」のフォルダに移動してそこで端末を立ち上げ
export PATH_TO_FX=/home/38/javafx-sdk-17.0.1/lib
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorld.java
の後
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorld
とすればアプリが表示されるはず
つまり、この使い方ならば
export PATH_TO_FX=
から後ろの部分を変更すれば前の記事との応用が効きますので開発もしたい人は参考にして下さい。
(忙しいのでそこまで検証出来ない)
その理由は、javaの長期サポート版がその時点では古かったので最新版が発表されるまでの応急処置的な記事だったのだが、先日その java の長期サポート版が出たと聞き色々と調べた結果をメモ書きにして残しておく事にした。
まず
Oracle java ではなく Openjava を使う。
ubuntu20.04 では現在 openjdk-17-jdk が apt でインストール出来る
最初から書くと
$ sudo apt search "^openjdk.*jdk$"
で問い合わせをすると
インストール可能な java が表示されるのでその中に
openjdk-17-jdk/focal-updates,now 17+35-1~20.04 amd64
OpenJDK Development Kit (JDK)
という項目があればそれを指定してインストールする。
$ sudo apt install openjdk-17-jdk
次に javafx だが、java17 用のものは ubuntu20.04 の apt では供給されていないので、本家からダウンロードする。
https://gluonhq.com/products/javafx/
下にスクロールして
openjfx-17.0.1_linux-x64_bin-sdk.zip
を選択しダウンロードする。
以下、追加(2022/04/24)
javafx のダウンロード方法が変更されています
その件についての記事はこちらです。
ここからが少々厄介。
通常ファイルはダウンロードされる際にはカタカナ名で「ダウンロードフォルダ」と書かれたフォルダにダウンロードされるのだが、そのままでは何かとトラブルがあるのでそのファイルを
/home
の下に新たに英語(半角数字)で書かれたフォルダを作ってそこに移動させる。
例
/home/38/openjfx-17.0.1_linux-x64_bin-sdk.zip
そこで解凍。
java 17 の環境が揃ったのでここから前回の記事のように
で、サンプルコードは以下のサイトのものを使って作成します
https://docs.oracle.com/javase/jp/8/javafx/get-started-tutorial/hello_world.htm
注意
現在上記のサイトにある 例3-1 Hello Worldのプログラムはコマンドラインでのコンパイルおよび表示ではエラーが出ます。
最初の部分 package helloworld; の一行は不要ですので削除して下さい
(以前はこのサンプルコードではなかったような気がするが・・・?)
その「38」のフォルダに移動してそこで端末を立ち上げ
export PATH_TO_FX=/home/38/javafx-sdk-17.0.1/lib
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorld.java
の後
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloWorld
とすればアプリが表示されるはず
つまり、この使い方ならば
export PATH_TO_FX=
から後ろの部分を変更すれば前の記事との応用が効きますので開発もしたい人は参考にして下さい。
(忙しいのでそこまで検証出来ない)