簡體   English   中英

如何在樹莓派操作系統上安裝 JavaFX

[英]How to install JavaFX on Raspberry Pi OS

我想在 Raspberry PI 1 Model B 上運行帶有 JavaFX 包的 .jar 文件。 JavaFX 不包含在 ARM 的 JDK 8 版本中。 因此,我嘗試通過參考以下網站來安裝 JavaFX。 https://stackoverrun.com/ja/q/11146620

我成功安裝了 JDK 並將提取的文件從 zip 存檔移動到 JDK 所需的文件夾。 之后我嘗試運行兩個 .jar 文件。 一個 .jar 文件的 GUI 由 Swing 包組成,另一個由 JavaFX 包組成。 由 Swing 包組成的 .jar 文件運行良好,如下圖所示。 在 Raspbian 上搖擺

另一方面,由 JavaFX 包組成的 .jar 文件輸出錯誤或警告,如下圖所示。 樹莓派上的 JavaFX

在這些輸出之后,沒有標題欄的異常 GUI 被顯示。 因此,無法最小化、最大化/調整關閉和移動窗口。 此外,窗戶周圍充滿了黑色。 在 Raspbian 上顯示的 JavaFX 窗口

當然,可以確認這兩個 .jar 文件在 Windows 10 環境中的 Java 8 上運行良好,沒有錯誤。 在 Windows 10擺動 Windows 10 上的JavaFX

注意:如您所知,Windows 的 Java 8 版本最初包含 JavaFX 庫。

我想解決這個問題。 我當前的操作系統和 Java 信息​​如下所示。 運行環境

非常感謝您的時間。

實際上,現在幾乎所有用於 ARM 的 Linux JDK 都適用於 64 位。

但是 Azul 有一個 Zulu JDK,你可以從: https : //www.azul.com/downloads/zulu-community/?version= java-11-lts&os=linux&architecture=arm-32-bit-hf&package=jdk

$ cd /usr/lib/jvm
$ sudo wget https://cdn.azul.com/zulu-embedded/bin/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf.tar.gz
$ sudo tar -xzvf zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf.tar.gz
$ sudo rm zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf.tar.gz
$ ls -l
total 12
lrwxrwxrwx  1 root root   21 Jul 23 15:58 java-1.11.0-openjdk-armhf -> java-11-openjdk-armhf
drwxr-xr-x  9 root root 4096 Aug 20 11:41 java-11-openjdk-armhf
drwxr-xr-x  2 root root 4096 Aug 20 11:41 openjdk-11
drwxrwxr-x 10  111  122 4096 Jul 10 16:50 zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf

$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/java 1
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/javac 1

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                                             Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-armhf/bin/java                       1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-armhf/bin/java                       1111      manual mode
  2            /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/java   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/java to provide /usr/bin/java (java) in manual mode

$ sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                                              Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-armhf/bin/javac                       1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-armhf/bin/javac                       1111      manual mode
  2            /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/javac   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/zulu11.41.75-ca-jdk11.0.8-linux_aarch32hf/bin/javac to provide /usr/bin/javac (javac) in manual mode

$ java -version
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment Zulu11.41+75-CA (build 11.0.8+10-LTS)
OpenJDK Client VM Zulu11.41+75-CA (build 11.0.8+10-LTS, mixed mode)

下一步是從https://gluonhq.com/products/javafx/ > “JavaFX armv6hf SDK”安裝 JavaFX

$ cd /home/pi
$ wget -O javafx.zip https://gluonhq.com/download/javafx-11-0-2-sdk-armv6hf/
$ unzip javafx.zip
$ rm javafx.zip

完成后,您可以使用以下命令運行您的應用程序:

$ sudo java --module-path /home/pi/armv6hf-sdk/lib --add-modules=javafx.controls -jar YOUR-APP.jar

有關完整的分步說明,請查看我博客上的這篇文章: https : //webtechie.be/post/2020-08-27-azul-zulu-java-11-and-gluon-javafx-11-on- armv6-樹莓派/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM